Jump to content

Ababoude

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Ababoude

  1. Hello ! I have a problem with my entity, when i use the command "/summon betterthings:sponge_sheep" my game crash : The crash log : ---- Minecraft Crash Report ---- // I bet Cylons wouldn't have this problem. Time: 21/11/20 16:50 Description: Unexpected error java.lang.NullPointerException: Unexpected error at net.minecraft.client.renderer.entity.EntityRendererManager.shouldRender(EntityRendererManager.java:239) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1004) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:619) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:437) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:979) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:589) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_271] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_271] {} at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_271] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-7.0.1.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:105) [forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at net.minecraft.client.renderer.entity.EntityRendererManager.shouldRender(EntityRendererManager.java:239) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1004) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:619) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} -- Affected level -- Details: All players: 1 total; [ClientPlayerEntity['Dev'/29, l='ClientLevel', x=169.46, y=4.00, z=208.16]] Chunk stats: Client Chunk Cache: 121, 49 Level dimension: minecraft:overworld Level spawn location: World: (160,4,208), Chunk: (at 0,0,0 in 10,13; contains blocks 160,0,208 to 175,255,223), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Level time: 1569 game time, 1569 day time Server brand: forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.world.ClientWorld.fillCrashReport(ClientWorld.java:465) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2036) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:610) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_271] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_271] {} at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_271] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-7.0.1.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:105) [forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {} -- System Details -- Details: Minecraft Version: 1.16.3 Minecraft Version ID: 1.16.3 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.8.0_271, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 297510080 bytes (283 MB) / 632291328 bytes (603 MB) up to 905969664 bytes (864 MB) CPUs: 4 JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump ModLauncher: 7.0.1+78+master.e9771d8 ModLauncher launch target: fmluserdevclient ModLauncher naming: mcp ModLauncher services: /mixin-0.8.2.jar mixin PLUGINSERVICE /eventbus-3.0.3-service.jar eventbus PLUGINSERVICE /forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-launcher.jar object_holder_definalize PLUGINSERVICE /forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-launcher.jar runtime_enum_extender PLUGINSERVICE /accesstransformers-2.2.0-shadowed.jar accesstransformer PLUGINSERVICE /forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-launcher.jar capability_inject_definalize PLUGINSERVICE /forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-launcher.jar runtimedistcleaner PLUGINSERVICE /mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE /forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-launcher.jar fml TRANSFORMATIONSERVICE FML: 34.1 Forge: net.minecraftforge:34.1.25 FML Language Providers: [email protected] minecraft@1 Mod List: client-extra.jar Minecraft {[email protected] DONE} forge-1.16.3-34.1.25_mapped_snapshot_20201028-1.16.3-recomp.jar Forge {[email protected] DONE} main Better Things {betterthings@NONE DONE} Crash Report UUID: 48978d83-5432-4b36-9294-32205bef98cc Launched Version: MOD_DEV Backend library: LWJGL version 3.2.2 build 10 Backend API: Intel(R) HD Graphics GL version 2.1.0 - Build 8.15.10.2993, Intel GL Caps: Using framebuffer using ARB_framebuffer_object extension Using VBOs: Yes Is Modded: Definitely; Client brand changed to 'forge' Type: Client (map_client.txt) GPU Warnings: version: 2.1 Graphics mode: fast Resource Packs: Current Language: Français (France) CPU: 4x Intel(R) Core(TM) i5 CPU M 450 @ 2.40GHz This all script contain any informations about my entity : Main : package fr.ababoude.betterthings; import fr.ababoude.betterthings.block.Blocks; import fr.ababoude.betterthings.entities.ModEntityTypes; import fr.ababoude.betterthings.entities.passive.SpongeSheepEntity; import fr.ababoude.betterthings.item.Foods; import fr.ababoude.betterthings.item.Items; import net.minecraft.entity.ai.attributes.GlobalEntityTypeAttributes; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.DeferredWorkQueue; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @Mod(Main.MODID) public class Main { public static final String MODID = "betterthings"; public Main(){ IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); bus.addListener(this::setup); bus.addListener(this::doClientStuff); ModEntityTypes.ENTITY_TYPES.register(bus); Items.ITEMS.register(bus); Foods.FOODS.register(bus); Blocks.BLOCKS.register(bus); MinecraftForge.EVENT_BUS.register(this); } private void setup(final FMLClientSetupEvent event) { DeferredWorkQueue.runLater(() -> { GlobalEntityTypeAttributes.put(ModEntityTypes.SPONGE_SHEEP.get(), SpongeSheepEntity.setCustomAttributes().create()); }); } private void doClientStuff(final FMLClientSetupEvent event) {} } ClientEventBusSubscriber : package fr.ababoude.betterthings.util; import fr.ababoude.betterthings.Main; import fr.ababoude.betterthings.client.renderer.entity.SpongeSheepRenderer; import fr.ababoude.betterthings.entities.ModEntityTypes; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; @Mod.EventBusSubscriber(modid = Main.MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public class ClientEventBusSubscriber { @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { RenderingRegistry.registerEntityRenderingHandler(ModEntityTypes.SPONGE_SHEEP.get(), SpongeSheepRenderer::new); } } ModEntityTypes : package fr.ababoude.betterthings.entities; import fr.ababoude.betterthings.Main; import fr.ababoude.betterthings.entities.passive.SpongeSheepEntity; import net.minecraft.entity.EntityClassification; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraft.entity.EntityType; public class ModEntityTypes { public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, Main.MODID); /** * .size = Taille de la Hitbox */ public static final RegistryObject<EntityType<SpongeSheepEntity>> SPONGE_SHEEP = ENTITY_TYPES.register("sponge_sheep", () -> EntityType.Builder.create(SpongeSheepEntity::new, EntityClassification.CREATURE) .size(0.9F, 1.3F) .build(new ResourceLocation(Main.MODID, "sponge_sheep").toString())); } SpongeSheepEntity : package fr.ababoude.betterthings.entities.passive; import fr.ababoude.betterthings.entities.ModEntityTypes; import net.minecraft.block.BlockState; import net.minecraft.entity.AgeableEntity; import net.minecraft.entity.EntityType; import net.minecraft.entity.MobEntity; import net.minecraft.entity.ai.attributes.AttributeModifierMap; import net.minecraft.entity.ai.attributes.Attributes; import net.minecraft.entity.ai.goal.*; import net.minecraft.entity.passive.AnimalEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Items; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.DamageSource; import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.Nullable; public class SpongeSheepEntity extends AnimalEntity { /** * Ingredient : Définis par quel ingrédients l'entité vas être attiré * IS_SHEARED : Crée un booléen qui vas servir a mettre en place le fait d'enlever la laine */ public static final Ingredient TEMPTATION_ITEMS = Ingredient.fromItems(Items.SPONGE, Items.WET_SPONGE); //private static final DataParameter<Boolean> IS_SHEARED = EntityDataManager.createKey(SpongeSheepEntity.class, DataSerializers.BOOLEAN); private int sheepTimer; private EatGrassGoal eatGrassGoal; public SpongeSheepEntity(EntityType<? extends SpongeSheepEntity> type, World worldIn) { super(type, worldIn); } /** * Définis ses paramètres de base (dans cette exemple, sa vie maximum et sa vitesse) */ //func_233666_p_ ---> registerAttributes() public static AttributeModifierMap.MutableAttribute setCustomAttributes() { return MobEntity.func_233666_p_() .createMutableAttribute(Attributes.MAX_HEALTH, 10.0D) .createMutableAttribute(Attributes.MOVEMENT_SPEED, 0.25D); } //@Override public AgeableEntity createChild(AgeableEntity ageable) { return ModEntityTypes.SPONGE_SHEEP.get().create(this.world); } /** * Définis les paramètres de cette entité, ex: sa vitesse en cas de panique est de 1,25D */ protected void registerGoals() { super.registerGoals(); this.eatGrassGoal = new EatGrassGoal(this); this.goalSelector.addGoal(0, new SwimGoal(this)); // La vitesse qu'il prend quand il nage this.goalSelector.addGoal(1, new PanicGoal(this, 1.25D)); // La vitesse qu'il prend quand il à peur this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D)); this.goalSelector.addGoal(3, new TemptGoal(this, 1.1D, TEMPTATION_ITEMS, false)); this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1D)); this.goalSelector.addGoal(5, this.eatGrassGoal); this.goalSelector.addGoal(6, new WaterAvoidingRandomWalkingGoal(this, 1.0D)); this.goalSelector.addGoal(7, new LookAtGoal(this, PlayerEntity.class, 6.0F)); this.goalSelector.addGoal(8, new LookRandomlyGoal(this)); } /** * Définis l'expérience que le joueur obtiens lorsque l'entité est tuée */ @Override protected int getExperiencePoints(PlayerEntity player) { return 1 + this.world.rand.nextInt(4); } /** * Configure tous les sons de l'entité */ @Override protected SoundEvent getAmbientSound() { return SoundEvents.ENTITY_SHEEP_AMBIENT; } @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return SoundEvents.ENTITY_SHEEP_HURT; } @Override protected SoundEvent getDeathSound() { return SoundEvents.ENTITY_SHEEP_DEATH; } @Override protected void playStepSound(BlockPos pos, BlockState blockIn) { this.playSound(SoundEvents.ENTITY_SHEEP_STEP, 0.15F, 1.0F); } /** * Met à jour les tâches de l'AI, exemple: eatGrassGoal */ @Override protected void updateAITasks() { this.sheepTimer = this.eatGrassGoal.getEatingGrassTimer(); super.updateAITasks(); } @Nullable @Override public AgeableEntity func_241840_a(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) { return null; } /** * Appelé fréquemment pour que l'entité puisse mettre à jour son état chaque fois que nécessaire. Par exemple, les zombies et les squelettes * l'utilise pour réagir à la lumière du soleil et commencer à brûler. */ public void livingTick() { if (this.world.isRemote) { this.sheepTimer = Math.max(0, this.sheepTimer - 1); } super.livingTick(); } /** * Handler pour {@link World#setEntityState} */ @OnlyIn(Dist.CLIENT) public void handleStatusUpdate(byte id) { if (id == 10) { this.sheepTimer = 40; } else { super.handleStatusUpdate(id); } } /* public ActionResultType func_230254_b_(PlayerEntity p_230254_1_, Hand p_230254_2_) { ItemStack itemstack = p_230254_1_.getHeldItem(p_230254_2_); if (false && itemstack.getItem() == Items.SHEARS) { //Forge: Moved to onSheared if (!this.world.isRemote && this.isShearable()) { this.shear(SoundCategory.PLAYERS); itemstack.damageItem(1, p_230254_1_, (p_213613_1_) -> p_213613_1_.sendBreakAnimation(p_230254_2_)); return ActionResultType.SUCCESS; } else { return ActionResultType.CONSUME; } } else { return super.func_230254_b_(p_230254_1_, p_230254_2_); } } public void shear(SoundCategory category) { this.world.playMovingSound(null, this, SoundEvents.ENTITY_SHEEP_SHEAR, category, 1.0F, 1.0F); this.setSheared(true); //if (SpongeMode == "Sponge") { this.entityDropItem(Items.SPONGE); //} else { // this.entityDropItem(Items.WET_SPONGE); //} } public boolean isShearable() { return this.isAlive() && this.getSheared() && !this.isChild(); } //@Override public boolean getSheared() { return this.dataManager.get(IS_SHEARED); } /** * make a sheep sheared if set to true *//* public void setSheared(boolean sheared) { //boolean bol = this.dataManager.get(IS_SHEARED); this.dataManager.set(IS_SHEARED, sheared); } public void eatGrassBonus() { //this.setSheared(false); if (this.isChild()) { this.addGrowth(60); } } @Nullable public ILivingEntityData onInitialSpawn(IServerWorld worldIn, DifficultyInstance difficultyIn, SpawnReason reason, @Nullable ILivingEntityData spawnDataIn, @Nullable CompoundNBT dataTag) { return super.onInitialSpawn(worldIn, difficultyIn, reason, spawnDataIn, dataTag); } /* public AgeableEntity func_241840_a(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) { return null; } } protected float getStandingEyeHeight(Pose poseIn, EntitySize sizeIn) { return 0.95F * sizeIn.height; } } */ } SpongeSheepRenderer : package fr.ababoude.betterthings.client.renderer.entity; import fr.ababoude.betterthings.Main; import fr.ababoude.betterthings.entities.passive.SpongeSheepEntity; import net.minecraft.client.renderer.entity.EntityRendererManager; import fr.ababoude.betterthings.client.renderer.entity.model.SpongeSheepModel; import net.minecraft.client.renderer.entity.MobRenderer; import net.minecraft.util.ResourceLocation; public class SpongeSheepRenderer extends MobRenderer<SpongeSheepEntity, SpongeSheepModel<SpongeSheepEntity>>{ protected static final ResourceLocation TEXTURE = new ResourceLocation(Main.MODID, "textures/entity/sheep/spongeSheep_base.png"); public SpongeSheepRenderer(EntityRendererManager renderManagerIn) { super(renderManagerIn, new SpongeSheepModel<>(), 0.7F); } @Override public ResourceLocation getEntityTexture(SpongeSheepEntity entity) { return TEXTURE; } } SpongeSheepModel : package fr.ababoude.betterthings.client.renderer.entity.model; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import fr.ababoude.betterthings.entities.passive.SpongeSheepEntity; import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraft.client.renderer.model.ModelRenderer; import net.minecraft.util.math.MathHelper; public class SpongeSheepModel<T extends SpongeSheepEntity> extends EntityModel<T> { private final ModelRenderer body; private final ModelRenderer head; private final ModelRenderer BackLeft; private final ModelRenderer BackRight; private final ModelRenderer FrontLeft; private final ModelRenderer FrontRight; public SpongeSheepModel() { textureWidth = 64; textureHeight = 32; body = new ModelRenderer(this); body.setRotationPoint(0.0F, 9.0F, 0.0F); setRotationAngle(body, 1.5708F, 0.0F, 0.0F); body.setTextureOffset(28, 8).addBox(-4.0F, -8.0F, -3.0F, 8.0F, 16.0F, 6.0F, 0.0F, true); head = new ModelRenderer(this); head.setRotationPoint(0.0F, 5.0F, -6.0F); head.setTextureOffset(0, 0).addBox(-3.0F, -3.0F, -8.0F, 6.0F, 6.0F, 8.0F, 0.0F, true); BackLeft = new ModelRenderer(this); BackLeft.setRotationPoint(3.0F, 12.0F, 7.0F); BackLeft.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.0F, true); BackRight = new ModelRenderer(this); BackRight.setRotationPoint(-3.0F, 12.0F, 7.0F); BackRight.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.0F, true); FrontLeft = new ModelRenderer(this); FrontLeft.setRotationPoint(3.0F, 12.0F, -5.0F); FrontLeft.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.0F, true); FrontRight = new ModelRenderer(this); FrontRight.setRotationPoint(-3.0F, 12.0F, -5.0F); FrontRight.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.0F, true); } @Override public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ body.render(matrixStack, buffer, packedLight, packedOverlay); head.render(matrixStack, buffer, packedLight, packedOverlay); BackLeft.render(matrixStack, buffer, packedLight, packedOverlay); BackRight.render(matrixStack, buffer, packedLight, packedOverlay); FrontLeft.render(matrixStack, buffer, packedLight, packedOverlay); FrontRight.render(matrixStack, buffer, packedLight, packedOverlay); } public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.rotateAngleX = x; modelRenderer.rotateAngleY = y; modelRenderer.rotateAngleZ = z; } @Override public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { this.head.rotateAngleX = headPitch * ((float)Math.PI / 180F); this.head.rotateAngleY = netHeadYaw * ((float)Math.PI / 180F); this.body.rotateAngleX = ((float)Math.PI / 2F); this.BackRight.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; this.BackLeft.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; this.FrontRight.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; this.FrontLeft.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; } } Thank you for the little look ! bye !
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.