
Starjay811
Members-
Posts
11 -
Joined
-
Last visited
Everything posted by Starjay811
-
... The json file was missing a bracket. *breathes deeply* thank you. lol
-
I've looked up multiple tutorials and at this point I'm just at a loss. In 1.8.9 this worked just fine but of course everything had to go and get flipped on its head soundwise in 1.11.2. ^^; I really don't understand much about how this whole sound system is functioning as a whole as it is, and for some reason none of my workspaces seem to generate with source code. I would love it if someone could help me out. Thanks! Main Mod Class- package slvr.LupineMod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; import slvr.LupineMod.proxy.*; import net.minecraftforge.common.BiomeManager.BiomeType; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.SpawnListEntry; import net.minecraftforge.fml.common.Mod; import slvr.LupineMod.entities.*; import slvr.LupineMod.init.LupineSoundEvents; import slvr.LupineMod.init.ModItems; import slvr.LupineMod.init.SoundRegisterListener; import slvr.LupineMod.proxy.CommonProxy; import net.minecraftforge.common.BiomeDictionary; import static net.minecraftforge.common.BiomeDictionary.Type; @Mod(modid =Reference.MOD_ID, name =Reference.NAME, version =Reference.VERSION, acceptedMinecraftVersions =Reference.ACCEPTED_VERSIONS) public class LupineMod { @Instance public static LupineMod instance; @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { System.out.println("Pre Init"); proxy.preInit(); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "africanWildDog"), EntityAfricanWildDog.class, "africanWildDog", 9, this, 50, 2, true, 0xdfc030, 0xb44b21); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "redWolf"), EntityRedWolf.class, "redWolf", 9, this, 50, 2, true, 0xf01f4b, 0x5d1b07); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "coyote"), EntityCoyote.class, "coyote", 9, this, 50, 2, true, 0xc37025, 0x484848); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "netherhound"), EntityNetherhound.class, "netherhound", 9, this, 50, 2, true, 0xcc6519, 0x2e2525); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "germanShepherd"), EntityGermanShepherd.class, "germanShepherd", 9, this, 50, 2, true, 0xd39147, 0x361d06); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "goldenRetriever"), EntityGoldenRetriever.class, "goldenRetriever", 9, this, 50, 2, true, 0xffdd53, 0xea9600); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "pitBull"), EntityPitBull.class, "pitBull", 9, this, 50, 2, true, 0x8eb2c9, 0xd2d2d2); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "dingo"), EntityDingo.class, "dingo", 9, this, 50, 2, true, 0xaa895a, 0xb6640c); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "arcticWolf"), EntityArcticWolf.class, "arcticWolf", 9, this, 50, 2, true, 0xe9fff8, 0x7f80bc); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "endWolf"), EntityEndWolf.class, "endWolf", 9, this, 50, 2, true, 0x360657, 0xe620e4); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "islandWolf"), EntityIslandWolf.class, "islandWolf", 9, this, 50, 2, true, 0x3188ff, 0x004141); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "newGuineaSingingDog"), EntityNewGuineaSingingDog.class, "newGuineaSingingDog", 9, this, 50, 2, true, 0xFF5721, 0xf7fffd); ModItems.init(); ModItems.register(); } @EventHandler public void init(FMLInitializationEvent event) { System.out.println("Init"); proxy.init(); GameRegistry.addRecipe(new ItemStack(slvr.LupineMod.init.ModItems.golden_steak), new Object[] {"###", "#X#", "###", '#', Items.GOLD_INGOT, 'X', Items.COOKED_BEEF}); } @EventHandler public void postInit(FMLPostInitializationEvent event) { System.out.println("Post Init"); proxy.postInit(); MinecraftForge.EVENT_BUS.register(new LupineEventHandler()); MinecraftForge.EVENT_BUS.register(new LupineSoundEvents()); SpawnListEntry african = new SpawnListEntry(EntityAfricanWildDog.class, 4, 2, 4); SpawnListEntry red = new SpawnListEntry(EntityRedWolf.class, 4, 2, 6); SpawnListEntry coyote = new SpawnListEntry(EntityCoyote.class, 1, 4, 4); SpawnListEntry netherhound = new SpawnListEntry(EntityNetherhound.class, 25, 1, 2); SpawnListEntry gs = new SpawnListEntry(EntityGermanShepherd.class, 1, 1, 1); SpawnListEntry golden = new SpawnListEntry(EntityGoldenRetriever.class, 1, 1, 1); SpawnListEntry pit = new SpawnListEntry(EntityPitBull.class, 1, 1, 1); SpawnListEntry dingo = new SpawnListEntry(EntityDingo.class, 2, 1, 1); SpawnListEntry arctic = new SpawnListEntry(EntityArcticWolf.class, 4, 4, 4); SpawnListEntry end = new SpawnListEntry(EntityEndWolf.class, 5, 4, 4); SpawnListEntry island = new SpawnListEntry(EntityIslandWolf.class, 8, 4, 4); SpawnListEntry singing = new SpawnListEntry(EntityNewGuineaSingingDog.class, 6, 4, 4); Object biomes[] = BiomeDictionary.getBiomes(Type.SANDY).toArray(); for (int i = 0; i < biomes.length; i++){ if(BiomeDictionary.hasType((Biome)biomes[i], Type.HOT)){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(dingo); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(african); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); } ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.SNOWY).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(arctic); } biomes = BiomeDictionary.getBiomes(Type.PLAINS).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(african); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.FOREST).toArray(); for (int i = 0; i < biomes.length; i++){ if(!BiomeDictionary.hasType((Biome)biomes[i], Type.SNOWY)){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); } ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.NETHER).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.MONSTER).add(netherhound); } biomes = BiomeDictionary.getBiomes(Type.END).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.MONSTER).add(end); } biomes = BiomeDictionary.getBiomes(Type.WASTELAND).toArray(); for (int i = 0; i < biomes.length; i++){ if(!BiomeDictionary.hasType((Biome)biomes[i], Type.SNOWY)){ } ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(singing); } biomes = BiomeDictionary.getBiomes(Type.MOUNTAIN).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.MUSHROOM).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(island); } biomes = BiomeDictionary.getBiomes(Type.JUNGLE).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(singing); } biomes = BiomeDictionary.getBiomes(Type.SWAMP).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.WATER).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(island); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(singing); } } } LupineSoundEvents under the package 'slvr.LupineMod.init' (and yes I stole some code from another modder's example for some help, heh, forgot to take the comment out): package slvr.LupineMod.init; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; import slvr.LupineMod.Reference; public class LupineSoundEvents { public static final SoundEvent SINGER_HOWL = createSoundEvent("singer_howl"); /** * Create a {@link SoundEvent}. * * @param soundName The SoundEvent's name without the testmod3 prefix * @return The SoundEvent */ private static SoundEvent createSoundEvent(String soundName) { final ResourceLocation soundID = new ResourceLocation(Reference.MOD_ID, soundName); return new SoundEvent(soundID).setRegistryName(soundID); } @Mod.EventBusSubscriber public static class RegistrationHandler { @SubscribeEvent public static void registerSoundEvents(RegistryEvent.Register<SoundEvent> event) { event.getRegistry().registerAll( SINGER_HOWL ); } } } sounds.json- { "singer_howl": { "category" : "hostile", "sounds": [{ "name": "slupinemod:mob/newguineasingingdog/singer_howl", "stream": true } ] } EntityNewGuineaSingingDog- package slvr.LupineMod.entities; import net.minecraft.init.SoundEvents; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; import slvr.LupineMod.Reference; import slvr.LupineMod.init.LupineSoundEvents; public class EntityNewGuineaSingingDog extends EntityVariedWolf{ public EntityNewGuineaSingingDog(World dWorld){ super(dWorld); } protected void entityInit(){ super.entityInit(); this.setWolfType(14); } protected SoundEvent getAmbientSound() { if (this.rand.nextInt(3) == 0) return LupineSoundEvents.SINGER_HOWL; else return this.isAngry() ? SoundEvents.ENTITY_WOLF_GROWL : (this.rand.nextInt(3) == 0 ? (this.isTamed() && ((Float)this.dataManager.get(DATA_HEALTH_ID)).floatValue() < 10.0F ? SoundEvents.ENTITY_WOLF_WHINE : SoundEvents.ENTITY_WOLF_PANT) : SoundEvents.ENTITY_WOLF_AMBIENT); } } The sound is stored in the filepath "src\main\resources\assets\slupinemod\sounds\mob\newguineasingingdog" as "singer_howl.ogg".
-
Thank you for yalls help, I did figure out that it was because I didn't do "slupinemod: before the file name in the mob's class! However, now Im having another small issue... I just don't quite know how to do this, haha. I want the New Guinea Singing Dog to howl, but he howls very frequently. So I was thinking it would also be nice if he would bark instead of howl sometimes too. However, this mess here: @Override protected String getLivingSound() { return this.isAngry() ? "mob.wolf.growl" : (this.rand.nextInt(3) == 0 ? (this.isTamed() && this.dataWatcher.getWatchableObjectFloat(18) < 10.0F ? "mob.wolf.whine" : "mob.wolf.panting") : "slupinemod:mob.newguineasingingdog.singer_howl"); } makes my brain hurt. I want the NGSD to sometimes bark as well as howl. How would I go about writing that in? Again, any help is greatly appreciated. thanks all
-
I recall reading something like this yet when I attempted to run the game, the mob would attempt to make the sound but would spit an error out in console. I'll revert it to that code and see exactly whatit does again.
-
In a mod I have been developing with a friend, I've made a decorative block that uses the same shape and such as a cake - however, it has this error that when it is placed, surrounding its bottom is a pixel-wide gap that shows the Void (or at least I assume it's the void). Yet the block's model and all seems to be accurate, since it can be walked on appropriately without jumping, and fits what si visually seen. At any rate, here's the codestuffs for it- BlockDogBowl.java package slvr.LupineMod.blocks; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import slvr.LupineMod.Reference; public class BlockDogBowl extends Block { public BlockDogBowl() { super(Material.wood); setUnlocalizedName(Reference.ModBlocks.DOG_BOWL.getUnlocalizedName()); setRegistryName(Reference.ModBlocks.DOG_BOWL.getRegistryName()); this.setCreativeTab(CreativeTabs.tabDecorations); this.setHardness(2.0F); this.setStepSound(soundTypeWood); this.setResistance(10.0F); } public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { setBlockBounds(1.0F / 16.0F, 0.0F, 0.0625F, 1.0F - 0.0625F, 0.5F, 1.0F - 0.0625F); } @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos) { return this.getCollisionBoundingBox(worldIn, pos, worldIn.getBlockState(pos)); } public boolean isFullCube(IBlockState state) { return false; } /** * Used to determine ambient occlusion and culling when rebuilding chunks for render */ public boolean isOpaqueCube(IBlockState state) { return false; } } ModBlocks.java package slvr.LupineMod.init; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraftforge.fml.common.registry.GameRegistry; import slvr.LupineMod.blocks.BlockDogBowl; public class ModBlocks { public static Block dog_bowl; public static void init() { dog_bowl = new BlockDogBowl(); } public static void register() { GameRegistry.registerBlock(dog_bowl); } public static void registerRenders() { registerRender(dog_bowl); } private static void registerBlock (Block block) { //GameRegistry.registerBlock(block); ItemBlock item = new ItemBlock(block); item.setRegistryName(block.getRegistryName()); GameRegistry.registerItem(item); } private static void registerRender(Block block) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory")); } } ClientProxy.java package slvr.LupineMod.proxy; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.client.registry.IRenderFactory; import slvr.LupineMod.entities.*; import slvr.LupineMod.init.ModBlocks; import slvr.LupineMod.init.ModItems; public class ClientProxy implements CommonProxy{ @Override public void preInit(){ ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityAfricanWildDog.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityRedWolf.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityCoyote.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityNetherhound.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityGermanShepherd.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityGoldenRetriever.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityPitBull.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityDingo.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityArcticWolf.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityEndWolf.class); ClientProxy.registerRenderForVariedWolf(slvr.LupineMod.entities.EntityNewGuineaSingingDog.class); } public void init(){ ModItems.registerRenders(); ModBlocks.registerRenders(); } private static void registerRenderForVariedWolf(Class c){ RenderingRegistry.registerEntityRenderingHandler(c, new IRenderFactory<EntityVariedWolf>() { @Override public Render<? super EntityVariedWolf> createRenderFor(RenderManager manager){ return new RenderVariedWolf(manager); } }); } } ItemDogBowl.json (blockstates folder) { "variants": { "normal": { "model": "slupinemod:dog_bowl" } } } dog_bowl.json (models/block folder) { "textures": { "particle": "blocks/planks_big_oak", "bottom": "blocks/planks_big_oak", "top": "slupinemod:blocks/dog_bowl_top", "side": "blocks/planks_big_oak" }, "elements": [ { "from": [ 1, 0, 1 ], "to": [ 15, 8, 15 ], "faces": { "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#bottom", "cullface": "down" }, "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#top" }, "north": { "uv": [ 1, 8, 15, 16 ], "texture": "#side" }, "south": { "uv": [ 1, 8, 15, 16 ], "texture": "#side" }, "west": { "uv": [ 1, 8, 15, 16 ], "texture": "#side" }, "east": { "uv": [ 1, 8, 15, 16 ], "texture": "#side" } } } ] } Any idea what could be causing this? It is certainly no game-breaking bug but it is annoying.
-
After scouring the internet for hours hoping to find a tutorial that would moderately work for adding custom sounds to a custom mob, I finally came across a video tutorial that made sense. However, it was for 1.10.2/1.11.2, and eclipse is throwing errors I don't know how to fix. The mob is called a New Guinea Singing Dog, and it is virtually a copy of the Minecraft wolf. The only difference is in place of barking like a minecraft wolf in its LivingSound, it howls. Or at least, that's what I would like it to do. EnityNewGuineaSingingDog.java Note that the class is so short because it inherits all of its wolf code from EntityVariedWolf. package slvr.LupineMod.entities; import net.minecraft.world.World; import slvr.LupineMod.Reference; public class EntityNewGuineaSingingDog extends EntityVariedWolf{ public EntityNewGuineaSingingDog(World dWorld){ super(dWorld); } protected void entityInit(){ super.entityInit(); this.setWolfType(14); } @Override protected String getLivingSound() { return this.isAngry() ? "mob.wolf.growl" : (this.rand.nextInt(3) == 0 ? (this.isTamed() && this.dataWatcher.getWatchableObjectFloat(18) < 10.0F ? "mob.wolf.whine" : "mob.wolf.panting") : "mob.newguineasingingdog.singer_howl"); } } sounds.json { "mob.newguineasingingdog.singer_howl":{ "category": "hostile", "sounds":[{"name":"slupinemod:mob/newguineasingingdog/singer_howl","stream":true}] } } SingerSoundHandler.java package slvr.LupineMod; import java.io.File; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.sound.SoundEvent; import net.minecraftforge.client.event.sound.SoundLoadEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class SingerSoundHandler { private static int size = 0; public static SoundEvent SINGER_HOWL; public static void init() { size = SoundEvent.REGISTRY.getKeys().size(); SINGER_HOWL = register("mob.newguineasingingdog.singer_howl"); } public static SoundEvent register(String name) { ResourceLocation location = new ResourceLocation(Reference.MOD_ID, name); SoundEvent e = new SoundEvent(location); SoundEvent.REGISTRY.register(size, location, e); size++; return e; } } Main Mod Class, LupineMod.java package slvr.LupineMod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; import slvr.LupineMod.proxy.*; import net.minecraftforge.common.BiomeManager.BiomeType; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraft.block.BlockPlanks; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.fml.common.Mod; import slvr.LupineMod.entities.*; import slvr.LupineMod.init.ModBlocks; import slvr.LupineMod.init.ModItems; import slvr.LupineMod.proxy.CommonProxy; import net.minecraftforge.client.event.sound.SoundEvent; import net.minecraftforge.common.BiomeDictionary; import static net.minecraftforge.common.BiomeDictionary.Type; @Mod(modid =Reference.MOD_ID, name =Reference.NAME, version =Reference.VERSION, acceptedMinecraftVersions =Reference.ACCEPTED_VERSIONS) public class LupineMod { @Instance public static LupineMod instance; @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { System.out.println("Pre Init"); EntityRegistry.registerModEntity(EntityAfricanWildDog.class, "africanWildDog", 9, this, 50, 2, true, 0xdfc030, 0xb44b21); EntityRegistry.registerModEntity(EntityRedWolf.class, "redWolf", 9, this, 50, 2, true, 0xf01f4b, 0x5d1b07); EntityRegistry.registerModEntity(EntityCoyote.class, "coyote", 9, this, 50, 2, true, 0xc37025, 0x484848); EntityRegistry.registerModEntity(EntityNetherhound.class, "netherhound", 9, this, 50, 2, true, 0xcc6519, 0x2e2525); EntityRegistry.registerModEntity(EntityGermanShepherd.class, "germanShepherd", 9, this, 50, 2, true, 0xd39147, 0x361d06); EntityRegistry.registerModEntity(EntityGoldenRetriever.class, "goldenRetriever", 9, this, 50, 2, true, 0xffdd53, 0xea9600); EntityRegistry.registerModEntity(EntityPitBull.class, "pitBull", 9, this, 50, 2, true, 0x8eb2c9, 0xd2d2d2); EntityRegistry.registerModEntity(EntityDingo.class, "dingo", 9, this, 50, 2, true, 0xaa895a, 0xb6640c); EntityRegistry.registerModEntity(EntityArcticWolf.class, "arcticWolf", 9, this, 50, 2, true, 0xe9fff8, 0x7f80bc); EntityRegistry.registerModEntity(EntityEndWolf.class, "endWolf", 9, this, 50, 2, true, 0x360657, 0xe620e4); EntityRegistry.registerModEntity(EntityIslandWolf.class, "islandWolf", 9, this, 50, 2, true, 0x3188ff, 0x004141); EntityRegistry.registerModEntity(EntityNewGuineaSingingDog.class, "newGuineaSingingDog", 9, this, 50, 2, true); proxy.preInit(); ModItems.init(); ModItems.register(); ModBlocks.init(); ModBlocks.register(); } @EventHandler public void init(FMLInitializationEvent event) { System.out.println("Init"); proxy.init(); SingerSoundHandler.init(); GameRegistry.addRecipe(new ItemStack(slvr.LupineMod.init.ModBlocks.dog_bowl, 1), new Object[] {"###", "#X#", "###", '#', Blocks.planks, 'X', Items.mutton}); GameRegistry.addRecipe(new ItemStack(slvr.LupineMod.init.ModItems.golden_steak), new Object[] {"###", "#X#", "###", '#', Items.gold_ingot, 'X', Items.cooked_beef}); } @EventHandler public void postInit(FMLPostInitializationEvent event) { System.out.println("Post Init"); MinecraftForge.EVENT_BUS.register(new LupineEventHandler()); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry african = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityAfricanWildDog.class, 1, 2, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry red = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityRedWolf.class, 1, 2, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry coyote = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityCoyote.class, 1, 4, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry netherhound = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityNetherhound.class, 25, 1, 2); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry gs = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityGermanShepherd.class, 1, 1, 1); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry golden = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityGoldenRetriever.class, 1, 1, 1); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry pit = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityPitBull.class, 1, 1, 1); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry dingo = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityDingo.class, 2, 1, 1); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry arctic = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityArcticWolf.class, 4, 4, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry end = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityEndWolf.class, 5, 4, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry island = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityIslandWolf.class, 6, 4, 4); net.minecraft.world.biome.BiomeGenBase.SpawnListEntry singing = new net.minecraft.world.biome.BiomeGenBase.SpawnListEntry(EntityNewGuineaSingingDog.class, 6, 4, 4); BiomeGenBase biomes[] = BiomeDictionary.getBiomesForType(Type.SANDY); for (int i = 0; i < biomes.length; i++){ if(BiomeDictionary.isBiomeOfType(biomes[i], Type.HOT)){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(dingo); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(african); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(red); } biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomesForType(Type.SNOWY); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(arctic); } biomes = BiomeDictionary.getBiomesForType(Type.PLAINS); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(african); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomesForType(Type.FOREST); for (int i = 0; i < biomes.length; i++){ if(!BiomeDictionary.isBiomeOfType(biomes[i], Type.SNOWY)){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(red); } biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomesForType(Type.NETHER); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.MONSTER).add(netherhound); } biomes = BiomeDictionary.getBiomesForType(Type.END); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.MONSTER).add(end); } biomes = BiomeDictionary.getBiomesForType(Type.WASTELAND); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(red); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(singing); } biomes = BiomeDictionary.getBiomesForType(Type.MOUNTAIN); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomesForType(Type.MUSHROOM); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(island); } biomes = BiomeDictionary.getBiomesForType(Type.JUNGLE); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(singing); } biomes = BiomeDictionary.getBiomesForType(Type.SWAMP); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomesForType(Type.WATER); for (int i = 0; i < biomes.length; i++){ biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(gs); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(pit); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(golden); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(island); biomes[i].getSpawnableList(EnumCreatureType.CREATURE).add(singing); } } } My problem lies in the SingerSoundHandler. At this- public static void init() { size = SoundEvent.REGISTRY.getKeys().size(); it says "REGISTRY cannot be resolved or is not a field." At this- ResourceLocation location = new ResourceLocation(Reference.MOD_ID, name); SoundEvent e = new SoundEvent(location); It says "the SoundEvent ResourceLocation is undefined." And at this- SoundEvent.REGISTRY.register(size, location, e); It just says that "REGISTRY cannot be resolved or is not a field" again. I'm assuming a lot of this is technical naming detail, but I am still pretty new to modding, and no tutorials I have found have seemed to clear this up at all. I would be EXTREMELY grateful for some help!
-
We changed the render factory's return type in createRenderFor to Render<EntityVariedWolf> instead of RenderVariedWolf. They now render. Thank you all for your help.
-
Main mod class: LupineMod.java package slvr.LupineMod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.EntityRegistry; import slvr.LupineMod.proxy.*; import net.minecraftforge.common.BiomeManager.BiomeType; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.ResourceLocation; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.SpawnListEntry; import net.minecraftforge.fml.common.Mod; import slvr.LupineMod.entities.*; import slvr.LupineMod.init.ModItems; import slvr.LupineMod.proxy.CommonProxy; import net.minecraftforge.common.BiomeDictionary; import static net.minecraftforge.common.BiomeDictionary.Type; @Mod(modid =Reference.MOD_ID, name =Reference.NAME, version =Reference.VERSION, acceptedMinecraftVersions =Reference.ACCEPTED_VERSIONS) public class LupineMod { @Instance public static LupineMod instance; @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { System.out.println("Pre Init"); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "africanWildDog"), EntityAfricanWildDog.class, "africanWildDog", 9, this, 50, 2, true, 0, 0); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "redWolf"), EntityRedWolf.class, "redWolf", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "coyote"), EntityCoyote.class, "coyote", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "netherhound"), EntityNetherhound.class, "netherhound", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "germanShepherd"), EntityGermanShepherd.class, "germanShepherd", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "goldenRetriever"), EntityGoldenRetriever.class, "goldenRetriever", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "pitBull"), EntityPitBull.class, "pitBull", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "dingo"), EntityDingo.class, "dingo", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "arcticWolf"), EntityArcticWolf.class, "arcticWolf", 9, this, 50, 2, true); EntityRegistry.registerModEntity(new ResourceLocation(Reference.MOD_ID, "endWolf"), EntityEndWolf.class, "endWolf", 9, this, 50, 2, true); ModItems.init(); ModItems.register(); } @EventHandler public void init(FMLInitializationEvent event) { System.out.println("Init"); proxy.init(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { System.out.println("Post Init"); MinecraftForge.EVENT_BUS.register(new LupineEventHandler()); SpawnListEntry african = new SpawnListEntry(EntityAfricanWildDog.class, 4, 2, 4); SpawnListEntry red = new SpawnListEntry(EntityRedWolf.class, 4, 2, 6); SpawnListEntry coyote = new SpawnListEntry(EntityCoyote.class, 1, 4, 4); SpawnListEntry netherhound = new SpawnListEntry(EntityNetherhound.class, 25, 1, 2); SpawnListEntry gs = new SpawnListEntry(EntityGermanShepherd.class, 1, 1, 1); SpawnListEntry golden = new SpawnListEntry(EntityGoldenRetriever.class, 1, 1, 1); SpawnListEntry pit = new SpawnListEntry(EntityPitBull.class, 1, 1, 1); SpawnListEntry dingo = new SpawnListEntry(EntityDingo.class, 2, 1, 1); SpawnListEntry arctic = new SpawnListEntry(EntityArcticWolf.class, 4, 4, 4); SpawnListEntry end = new SpawnListEntry(EntityEndWolf.class, 5, 4, 4); Object biomes[] = BiomeDictionary.getBiomes(Type.SANDY).toArray(); for (int i = 0; i < biomes.length; i++){ if(BiomeDictionary.hasType((Biome)biomes[i], Type.HOT)){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(dingo); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(african); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); } ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.SNOWY).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(arctic); } biomes = BiomeDictionary.getBiomes(Type.PLAINS).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(african); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.FOREST).toArray(); for (int i = 0; i < biomes.length; i++){ if(!BiomeDictionary.hasType((Biome)biomes[i], Type.SNOWY)){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); } ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.NETHER).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.MONSTER).add(netherhound); } biomes = BiomeDictionary.getBiomes(Type.END).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.MONSTER).add(end); } biomes = BiomeDictionary.getBiomes(Type.WASTELAND).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(red); } biomes = BiomeDictionary.getBiomes(Type.MOUNTAIN).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.MUSHROOM).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.JUNGLE).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.SWAMP).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(coyote); } biomes = BiomeDictionary.getBiomes(Type.WATER).toArray(); for (int i = 0; i < biomes.length; i++){ ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(gs); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(pit); ((Biome)biomes[i]).getSpawnableList(EnumCreatureType.CREATURE).add(golden); } } }
-
Removing that did not fix it.
-
It was just something to check if any exceptions were thrown that we forgot to remove later, lol. No exceptions are thrown though.
-
So, a friend and I have been working on a modification that worked just fine in 1.9.4 and 1.10.2, but in 1.11.2 we've fixed all the various bugs... except for the fact that the mobs just render as cuboid white prisms, and my friend says that it appears the methods in render class don't get called at all. The mobile in question is virtually a copy of vanilla wolves, but with various spawning differences, different textures, and sometimes, different behaviors. However, RenderWolf and ModelWolf were copied to give the wolves their models and such. Right now, we simply cannot figure out what is wrong with the rendering on these mobs. The modification adds various wolves to the Minecraft world, all of which are modeled after the vanilla wolf and use basically the same behavior. But the various kinds spawn in different biomes and have their own textures. Code is in the spoiler below.