diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index 0b3605bbf..606359f3c 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -27,6 +27,7 @@ import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer; import ru.dbotthepony.mc.otm.capability.drive.DrivePool; import ru.dbotthepony.mc.otm.client.AndroidGui; import ru.dbotthepony.mc.otm.client.EventHandler; +import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel; import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel; import ru.dbotthepony.mc.otm.core.Fraction; import ru.dbotthepony.mc.otm.item.ItemPortableCondensationDrive; @@ -170,6 +171,7 @@ public class OverdriveThatMatters { ITEM_STORAGE = StorageObjectRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY, new Fraction("3.125")); TritaniumArmorModel.register(); + GravitationStabilizerModel.register(); } private void setupClient(final FMLClientSetupEvent event) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/model/GravitationStabilizerModel.java b/src/main/java/ru/dbotthepony/mc/otm/client/model/GravitationStabilizerModel.java new file mode 100644 index 000000000..1c0f96db1 --- /dev/null +++ b/src/main/java/ru/dbotthepony/mc/otm/client/model/GravitationStabilizerModel.java @@ -0,0 +1,34 @@ +package ru.dbotthepony.mc.otm.client.model; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.*; +import net.minecraftforge.client.ForgeHooksClient; +import ru.dbotthepony.mc.otm.Registry; + +public class GravitationStabilizerModel { + public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(Registry.Names.PORTABLE_GRAVITATION_STABILIZER, "main"); + + private static HumanoidModel model; + private static LayerDefinition def; + + public static HumanoidModel getModel() { + if (model == null) { + return model = new HumanoidModel<>(def.bakeRoot()); + } + + return model; + } + + public static LayerDefinition createBodyLayer() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + + model = null; + return def = LayerDefinition.create(meshdefinition, 64, 64); + } + + public static void register() { + ForgeHooksClient.registerLayerDefinition(LAYER_LOCATION, GravitationStabilizerModel::createBodyLayer); + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ItemPortableGravitationStabilizer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ItemPortableGravitationStabilizer.kt index 7a89a45b5..dec4b3aaa 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ItemPortableGravitationStabilizer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ItemPortableGravitationStabilizer.kt @@ -10,6 +10,7 @@ import net.minecraft.world.item.crafting.Ingredient import net.minecraftforge.client.IItemRenderProperties import net.minecraftforge.common.ForgeTier import ru.dbotthepony.mc.otm.OverdriveThatMatters +import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel import java.util.function.Consumer private object GravitationStabilizerArmorMaterial : ArmorMaterial { @@ -32,8 +33,8 @@ private object GravitationStabilizerArmorRenderProperties : IItemRenderPropertie itemStack: ItemStack, armorSlot: EquipmentSlot, _default: A - ): A? { - return super.getArmorModel(entityLiving, itemStack, armorSlot, _default) + ): A { + return GravitationStabilizerModel.getModel() as A } }