This commit is contained in:
parent
8c313ff6ea
commit
31a96a7c1a
7 changed files with 83 additions and 27 deletions
|
|
@ -1,9 +1,6 @@
|
||||||
# FORK!
|
# FORK!
|
||||||
This is a forked version of https://modrinth.com/mod/powered-jetpacks
|
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
|
which was originally for 1.20.1. I've ported the mod to 1.21.8.
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
This version also adds hover flying and creative flying.
|
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.
|
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
|
loom_version=1.11-SNAPSHOT
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.1.2
|
mod_version=1.2.0
|
||||||
maven_group=konhaiii.powered_jetpacks
|
maven_group=konhaiii.powered_jetpacks
|
||||||
archives_base_name=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.PoweredJetpacks;
|
||||||
import konhaiii.powered_jetpacks.item.ModItems;
|
import konhaiii.powered_jetpacks.item.ModItems;
|
||||||
import konhaiii.powered_jetpacks.item.special.JetpackItem;
|
import konhaiii.powered_jetpacks.item.special.JetpackItem;
|
||||||
|
import konhaiii.powered_jetpacks.PlayerEntityRenderStateTrinkets;
|
||||||
import konhaiii.powered_jetpacks.models.JetpackModel;
|
import konhaiii.powered_jetpacks.models.JetpackModel;
|
||||||
import net.minecraft.client.render.*;
|
import net.minecraft.client.render.*;
|
||||||
import net.minecraft.client.render.entity.LivingEntityRenderer;
|
import net.minecraft.client.render.entity.LivingEntityRenderer;
|
||||||
import net.minecraft.client.render.entity.feature.FeatureRenderer;
|
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.render.entity.state.PlayerEntityRenderState;
|
||||||
import net.minecraft.client.util.math.MatrixStack;
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.RotationAxis;
|
import net.minecraft.util.math.RotationAxis;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
|
|
||||||
public class JetpackRenderer extends FeatureRenderer<PlayerEntityRenderState, JetpackModel> {
|
public class JetpackRenderer extends FeatureRenderer<PlayerEntityRenderState, JetpackModel> {
|
||||||
|
|
||||||
private final JetpackModel jetpackModel;
|
private final JetpackModel jetpackModel;
|
||||||
|
|
@ -40,15 +36,9 @@ public class JetpackRenderer extends FeatureRenderer<PlayerEntityRenderState, Je
|
||||||
ItemStack backStack = ItemStack.EMPTY;
|
ItemStack backStack = ItemStack.EMPTY;
|
||||||
|
|
||||||
// Trinkets support (optional)
|
// Trinkets support (optional)
|
||||||
/*if (PoweredJetpacks.isTrinketsLoaded) {
|
if (PoweredJetpacks.isTrinketsLoaded) {
|
||||||
try {
|
backStack = ((PlayerEntityRenderStateTrinkets)state).powered_jetpacks$getTrinketsBack();
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}*/
|
|
||||||
|
|
||||||
// Pick the jetpack stack
|
// Pick the jetpack stack
|
||||||
ItemStack jetpackStack = chestStack.getItem() instanceof JetpackItem ? chestStack
|
ItemStack jetpackStack = chestStack.getItem() instanceof JetpackItem ? chestStack
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@
|
||||||
"package": "konhaiii.powered_jetpacks.mixin.client",
|
"package": "konhaiii.powered_jetpacks.mixin.client",
|
||||||
"compatibilityLevel": "JAVA_17",
|
"compatibilityLevel": "JAVA_17",
|
||||||
"client": [
|
"client": [
|
||||||
"ClientPlayerEntityMixin"
|
"ClientPlayerEntityMixin",
|
||||||
|
"PlayerEntityRendererMixin",
|
||||||
|
"PlayerEntityRenderStateMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue