This commit is contained in:
parent
8c313ff6ea
commit
31a96a7c1a
7 changed files with 83 additions and 27 deletions
|
|
@ -1,9 +1,6 @@
|
|||
# FORK!
|
||||
This is a forked version of https://modrinth.com/mod/powered-jetpacks
|
||||
which was originally for 1.20.1. I've ported the mod to 1.21.8, but
|
||||
there's still a major bug, which is if you're using the powered jetback in quirk armor,
|
||||
it won't show it on your player model.
|
||||
|
||||
which was originally for 1.20.1. I've ported the mod to 1.21.8.
|
||||
|
||||
This version also adds hover flying and creative flying.
|
||||
Hover is by default bound to H, and creative fly is bound by default to J.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ loader_version=0.17.2
|
|||
loom_version=1.11-SNAPSHOT
|
||||
|
||||
# Mod Properties
|
||||
mod_version=1.1.2
|
||||
mod_version=1.2.0
|
||||
maven_group=konhaiii.powered_jetpacks
|
||||
archives_base_name=powered_jetpacks
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
package konhaiii.powered_jetpacks;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface PlayerEntityRenderStateTrinkets {
|
||||
ItemStack powered_jetpacks$getTrinketsBack();
|
||||
void powered_jetpacks$setTrinketsBack(ItemStack stack);
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package konhaiii.powered_jetpacks.mixin.client;
|
||||
|
||||
import konhaiii.powered_jetpacks.PlayerEntityRenderStateTrinkets;
|
||||
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
|
||||
@Mixin(PlayerEntityRenderState.class)
|
||||
public class PlayerEntityRenderStateMixin implements PlayerEntityRenderStateTrinkets {
|
||||
@Unique
|
||||
private ItemStack trinketsBack = ItemStack.EMPTY;
|
||||
|
||||
@Override
|
||||
public ItemStack powered_jetpacks$getTrinketsBack() {
|
||||
return trinketsBack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void powered_jetpacks$setTrinketsBack(ItemStack stack) {
|
||||
this.trinketsBack = stack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package konhaiii.powered_jetpacks.mixin.client;
|
||||
|
||||
import konhaiii.powered_jetpacks.PlayerEntityRenderStateTrinkets;
|
||||
import konhaiii.powered_jetpacks.PoweredJetpacks;
|
||||
import net.minecraft.client.network.AbstractClientPlayerEntity;
|
||||
import net.minecraft.client.render.entity.PlayerEntityRenderer;
|
||||
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@Mixin(PlayerEntityRenderer.class)
|
||||
public class PlayerEntityRendererMixin {
|
||||
@Inject(
|
||||
method = "updateRenderState(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V",
|
||||
at = @At("RETURN")
|
||||
)
|
||||
private void updateRenderStateRotations(AbstractClientPlayerEntity entity, PlayerEntityRenderState state, float f, CallbackInfo ci) {
|
||||
if (PoweredJetpacks.isTrinketsLoaded) {
|
||||
try {
|
||||
Class<?> trinkets = Class.forName("konhaiii.powered_jetpacks.compat.TrinketsServer");
|
||||
Method getBackStack = trinkets.getMethod("getBackStack", LivingEntity.class);
|
||||
ItemStack backStack = (ItemStack) getBackStack.invoke(null, entity);
|
||||
|
||||
((PlayerEntityRenderStateTrinkets)state).powered_jetpacks$setTrinketsBack(backStack);
|
||||
} catch (Exception e) {
|
||||
PoweredJetpacks.LOGGER.error("PlayerEntityRendererMixin: Could not load Trinkets compat class.", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,21 +3,17 @@ package konhaiii.powered_jetpacks.renderers;
|
|||
import konhaiii.powered_jetpacks.PoweredJetpacks;
|
||||
import konhaiii.powered_jetpacks.item.ModItems;
|
||||
import konhaiii.powered_jetpacks.item.special.JetpackItem;
|
||||
import konhaiii.powered_jetpacks.PlayerEntityRenderStateTrinkets;
|
||||
import konhaiii.powered_jetpacks.models.JetpackModel;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.render.entity.LivingEntityRenderer;
|
||||
import net.minecraft.client.render.entity.feature.FeatureRenderer;
|
||||
import net.minecraft.client.render.entity.feature.FeatureRendererContext;
|
||||
import net.minecraft.client.render.entity.model.EntityModelLayers;
|
||||
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.RotationAxis;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class JetpackRenderer extends FeatureRenderer<PlayerEntityRenderState, JetpackModel> {
|
||||
|
||||
private final JetpackModel jetpackModel;
|
||||
|
|
@ -40,15 +36,9 @@ public class JetpackRenderer extends FeatureRenderer<PlayerEntityRenderState, Je
|
|||
ItemStack backStack = ItemStack.EMPTY;
|
||||
|
||||
// Trinkets support (optional)
|
||||
/*if (PoweredJetpacks.isTrinketsLoaded) {
|
||||
try {
|
||||
Class<?> trinkets = Class.forName("konhaiii.powered_jetpacks.compat.TrinketsServer");
|
||||
Method getBackStack = trinkets.getMethod("getBackStack", state.entity().getClass());
|
||||
backStack = (ItemStack) getBackStack.invoke(null, state.entity());
|
||||
} catch (Exception e) {
|
||||
PoweredJetpacks.LOGGER.error("JetpackRenderer: Could not load Trinkets compat class.", e);
|
||||
if (PoweredJetpacks.isTrinketsLoaded) {
|
||||
backStack = ((PlayerEntityRenderStateTrinkets)state).powered_jetpacks$getTrinketsBack();
|
||||
}
|
||||
}*/
|
||||
|
||||
// Pick the jetpack stack
|
||||
ItemStack jetpackStack = chestStack.getItem() instanceof JetpackItem ? chestStack
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
"package": "konhaiii.powered_jetpacks.mixin.client",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"client": [
|
||||
"ClientPlayerEntityMixin"
|
||||
"ClientPlayerEntityMixin",
|
||||
"PlayerEntityRendererMixin",
|
||||
"PlayerEntityRenderStateMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue