Jump to content

Recommended Posts

Posted

I have a mod but would like to make a cape for dev team and testers,and then a seperate one for donaters but dont have a single clue as to how.I would also like to know the demensions for the cape texture and maybe even a template .png

Posted
  On 2/18/2013 at 3:18 AM, endershadow said:

I would like to know how to make a cape as well. I know the Industrial Craft 2 modders have an IC2 cape

 

any idea on how i can contact them??? i tried tweeting RG and no reply i tweeted cpw and asked if he could ask one of the ic2 devs and nothing yet

Posted
  On 2/26/2013 at 4:47 PM, ZeldaCorporation said:

and even how do we tell who gets the cape and what do we put,because just that one line will not suffice

 

you could use an if statement for the player's username. I did this

if(player.username == "USERNAME_ ONE" || player.username == "USERNAME_TWO" || player.username == "USERNAME_THREE")
	{
		player.playerCloakUrl = "";
	}

but I have no clue what the url should be.

Posted
  On 2/26/2013 at 8:36 PM, endershadow said:
player.username == "USERNAME_ ONE"

this is not how strings should be compared! http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java

 

I believe it's just URL, so you put there something like "http://www.anirudh.net/courses/cse585/project2/results_runs/images/lenna.gif" (e.g. link to a picture on imageshack).

mnn.getNativeLang() != English

If I helped you please click on the "thank you" button.

Posted
  On 2/26/2013 at 9:16 PM, mnn said:

  Quote
player.username == "USERNAME_ ONE"

this is not how strings should be compared! http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java

 

I believe it's just URL, so you put there something like "http://www.anirudh.net/courses/cse585/project2/results_runs/images/lenna.gif" (e.g. link to a picture on imageshack).

 

awsome,now the only question left is what is the pixel size??? (ex: blocks are 16x16)

Posted

Could someone just post what it would look like in this code:

package ZCs_Mod;


import ic2.api.Ic2Recipes;

import java.util.AbstractMap;

import net.minecraft.block.Block;
import net.minecraft.block.BlockFence;
import net.minecraft.block.BlockFenceGate;
import net.minecraft.block.BlockWall;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;





@Mod(modid = "Minecraft Edits", name = "Minecraft Edits", version = "v3.1")
@NetworkMod(clientSideRequired = true, serverSideRequired = true)



public class ZCsMod
{

//Items

public static Item CompressedLeather;
public static Item TannedLeather;
public static Item ReinforcedLeather;
public static Item Twine;
public static Item Rope;
public static Item BirchStick;
public static Item JungleStick;
public static Item SpruceStick;
public static Item Moss;
public static Item Link;
public static Item Chainlinks;
//public static Item CobbleStick;

//Blocks
public static Block BirchFenceGate;
public static Block JungleFenceGate;
public static Block SpruceFenceGate;
public static Block BirchFence;
public static Block JungleFence;
public static Block SpruceFence;
//public static Block CobbleFenceGate;

//Tabs
public static CreativeTabs MCEdits = new MCEdits(CreativeTabs.getNextID(), "MineCraft Edits");



        @PreInit
        public void initConfig(FMLPreInitializationEvent fpe)
        {
        	
        }
        /**
        * @PostInit
        *
        *public void check(FMLPostInitializationEvent e)
        *{
        *if(Loader.isModLoaded("IC2"))
        *    {
        *	
        *
        *	 }
        *}
        */
        
        @Init
        
        
        public void load(FMLInitializationEvent fie)
        {
        	
        	//Items
        	
        	CompressedLeather = (new ModItem(3000).setItemName("Compressed Leather").setCreativeTab(this.MCEdits).setIconCoord(0, 0));
        	ReinforcedLeather = (new ModItem(3001).setItemName("Reinforced Leather").setCreativeTab(this.MCEdits).setIconCoord(4, 0));
        	TannedLeather = (new ModItem(3002).setItemName("Tanned Leather").setCreativeTab(this.MCEdits).setIconCoord(1, 0));
        	Twine = (new ModItem(3003).setItemName("Twine").setCreativeTab(this.MCEdits).setIconCoord(2, 0));
        	Rope = (new ModItem(3004).setItemName("Rope").setCreativeTab(this.MCEdits).setIconCoord(3, 0));
        	BirchStick = (new ModItem(3005).setItemName("Birch Stick").setCreativeTab(this.MCEdits).setIconCoord(5, 0));
        	JungleStick = (new ModItem(3006).setItemName("Jungle Stick").setCreativeTab(this.MCEdits).setIconCoord(6, 0));
        	SpruceStick = (new ModItem(3007).setItemName("Spruce Stick").setCreativeTab(this.MCEdits).setIconCoord(7, 0));
        	Moss = (new ModItem(3008).setItemName("Moss").setCreativeTab(this.MCEdits).setIconCoord(9, 0));
        	Link = (new ModItem(3009).setItemName("Iron Link").setCreativeTab(this.MCEdits).setIconCoord(10, 0));
        	Chainlinks = (new ModItem(3010).setItemName("Chain Links").setCreativeTab(this.MCEdits).setIconCoord(11, 0));

        	//CobbleStick = (new ModItem(2908).setItemName("Cobble Stick").setCreativeTab(CreativeTabs.tabMaterials).setIconCoord(8, 0));
        	
        	//Blocks
        	
            BirchFenceGate = (new BlockFenceGate(3622, 214)).setHardness(2.0F).setResistance(5.0F).setBlockName("Birch FenceGate").setRequiresSelfNotify();
            JungleFenceGate = (new BlockFenceGate(3623, 199)).setHardness(2.0F).setResistance(5.0F).setBlockName("Jungle FenceGate").setRequiresSelfNotify();
            SpruceFenceGate = (new BlockFenceGate(3624, 198)).setHardness(2.0F).setResistance(5.0F).setBlockName("Spruce FenceGate").setRequiresSelfNotify();
            BirchFence = (new BlockzFence(3625, 214)).setHardness(2.0F).setResistance(5.0F).setBlockName("Birch Fence");
            JungleFence = (new BlockzFence(3626, 199)).setHardness(2.0F).setResistance(5.0F).setBlockName("Jungle Fence");
            SpruceFence = (new BlockzFence(3627, 198)).setHardness(2.0F).setResistance(5.0F).setBlockName("Spruce Fence");

            //CobbleFenceGate = (new BlockFenceGate(3621, 16)).setHardness(2.0F).setResistance(5.0F).setBlockName("Cobble FenceGate").setRequiresSelfNotify();

                registeringBlocks();
                blockNames();
                itemNames();
                recipes(); 
                smelting();
        
                
                //MINECRAFT FORGE TEXTURE FUNCTIONS
                
                MinecraftForgeClient.preloadTexture("/Textures/ZCsItems");
                MinecraftForgeClient.preloadTexture("/Textures/ZCsBlocks");
        }

        
        public void registeringBlocks()
        {
        	//GameRegistry.registerBlock(CobbleFenceGate, "Cobble FenceGate");
            GameRegistry.registerBlock(BirchFenceGate, "Birch FenceGate");
            GameRegistry.registerBlock(JungleFenceGate, "Jungle FenceGate");
            GameRegistry.registerBlock(SpruceFenceGate, "Spruce FenceGate");
            GameRegistry.registerBlock(BirchFence, "Birch Fence");
            GameRegistry.registerBlock(JungleFence, "Jungle Fence");
            GameRegistry.registerBlock(SpruceFence, "Spruce Fence");
        }
        
        public void blockNames()
        {
        	//LanguageRegistry.addName(CobbleFenceGate, "Cobblestone FenceGate");
        	LanguageRegistry.addName(BirchFenceGate, "Birch FenceGate");
        	LanguageRegistry.addName(JungleFenceGate, "Jungle FenceGate");
        	LanguageRegistry.addName(SpruceFenceGate, "Spruce FenceGate");
        	LanguageRegistry.addName(BirchFence, "Birch Fence");
        	LanguageRegistry.addName(JungleFence, "Jungle Fence");
        	LanguageRegistry.addName(SpruceFence, "Spruce Fence");
        }
        
        public void itemNames()
        {
        	
        	LanguageRegistry.addName(CompressedLeather, "Compressed Leather");
        	LanguageRegistry.addName(TannedLeather, "Tanned Leather");
        	LanguageRegistry.addName(ReinforcedLeather, "Reinforced Leather");
        	LanguageRegistry.addName(Twine, "Twine");
        	LanguageRegistry.addName(Rope, "Rope");
        	LanguageRegistry.addName(BirchStick, "Birch Stick");
        	LanguageRegistry.addName(JungleStick, "Jungle Stick");
        	LanguageRegistry.addName(SpruceStick, "Spruce Stick");
        	LanguageRegistry.addName(Moss, "Moss");
        	LanguageRegistry.addName(Link, "Iron Link");
        	LanguageRegistry.addName(Chainlinks, "Chain Link");
        	//LanguageRegistry.addName(CobbleStick, "Cobble Stick");
        	
        }
        
        public void recipes()
        {
        	GameRegistry.addRecipe(new ItemStack(CompressedLeather, 1), new Object[] {
        	"xxx", "xxx", "xxx", 'x', Item.leather
        	});
        	GameRegistry.addRecipe(new ItemStack(Rope, 1), new Object[] {
            	"x x", " x ", "x x", 'x', this.Twine
            });
        	GameRegistry.addRecipe(new ItemStack(Twine, 1), new Object[] {
            	"x x", "x x", "x x", 'x', Item.silk
            });
        	GameRegistry.addRecipe(new ItemStack(ReinforcedLeather, 1), new Object[] {
            	"xxx", "xgx", "xxx", 'x', this.TannedLeather, 'g', Item.ingotGold
            });
        	GameRegistry.addRecipe(new ItemStack(Item.saddle, 1), new Object[] {
            	"rrr", "rRr", "I I", 'r', this.ReinforcedLeather, 'R', this.Rope,'I' , Item.ingotIron
            });
        	
        	GameRegistry.addShapelessRecipe(new ItemStack(Item.leather, 9), new Object[] {
            	this.CompressedLeather
        	});
        	
        	GameRegistry.addShapelessRecipe(new ItemStack(Item.stick, 1), new Object[] {
            	this.BirchStick
        	});
        	
        	GameRegistry.addShapelessRecipe(new ItemStack(Item.stick, 1), new Object[] {
            	this.SpruceStick
        	});
        	
        	GameRegistry.addShapelessRecipe(new ItemStack(Item.stick, 1), new Object[] {
            	this.JungleStick
        	});
        	
        	GameRegistry.addRecipe(new ItemStack(BirchStick, 6), new Object[] {
            	" x ", " x ", " x ", 'x', new ItemStack(Block.planks, 5, 2)
        	});
        	
        	GameRegistry.addRecipe(new ItemStack(JungleStick, 6), new Object[] {
            	" x ", " x ", " x ", 'x', new ItemStack(Block.planks, 5, 3)
        	});
        	
        	GameRegistry.addRecipe(new ItemStack(SpruceStick, 6), new Object[] {
            	" x ", " x ", " x ", 'x', new ItemStack(Block.planks, 5, 1)
        	});
        	
        	//GameRegistry.addRecipe(new ItemStack(CobbleStick, 6), new Object[] {
            //	" x ", " x ", " x ", 'x', Block.cobblestone
        	//});
        	
        	GameRegistry.addRecipe(new ItemStack(BirchFenceGate, 1), new Object[] {
            	"   ", "sxs", "sxs", 'x', new ItemStack(Block.planks, 5, 2), 's', this.BirchStick
        	});
        	
        	GameRegistry.addRecipe(new ItemStack(JungleFenceGate, 1), new Object[] {
            	"   ", "sxs", "sxs", 'x', new ItemStack(Block.planks, 5, 3), 's', this.JungleStick
        	});
        	
        	GameRegistry.addRecipe(new ItemStack(SpruceFenceGate, 1), new Object[] {
            	"   ", "sxs", "sxs", 'x', new ItemStack(Block.planks, 5, 1), 's', this.SpruceStick
        	});
        	
        	//GameRegistry.addRecipe(new ItemStack(CobbleFenceGate, 1), new Object[] {
            //	"   ", "sxs", "sxs", 'x', Block.cobblestone, 's', this.CobbleStick
        	//});
        	
        	GameRegistry.addRecipe(new ItemStack(BirchFence, 4), new Object[]
        			{
        		"   ", "sss", "sss", 's', this.BirchStick
        			});
        	GameRegistry.addRecipe(new ItemStack(JungleFence, 4), new Object[]
        			{
        		"   ", "sss", "sss", 's', this.JungleStick
        			});
        	GameRegistry.addRecipe(new ItemStack(SpruceFence, 4), new Object[]
        			{
        		"   ", "sss", "sss", 's', this.SpruceStick
        			});
        	
        	GameRegistry.addRecipe(new ItemStack(Block.cobblestoneMossy, 1), new Object[] {
            	"xxx", "xvx", "xxx", 'x', this.Moss, 'v', Block.cobblestone
        	});
        
            GameRegistry.addRecipe(new ItemStack(Moss, 4), new Object[] {
        	"xxx", "xxx", "xxx", 'x', Block.vine
            });
            
            GameRegistry.addRecipe(new ItemStack(Link, 1), new Object[] {
            	"xxx", "x x", "xxx", 'x', Block.fenceIron
                });
            
            GameRegistry.addRecipe(new ItemStack(Chainlinks, 1), new Object[] {
            	"x  ", " x ", "  x", 'x', this.Link
                });
            
            GameRegistry.addRecipe(new ItemStack(Item.helmetChain, 1), new Object[] {
            	"xxx", "x x", "   ", 'x', this.Chainlinks
                });
            
            GameRegistry.addRecipe(new ItemStack(Item.helmetChain, 1), new Object[] {
            	"   ", "xxx", "x x", 'x', this.Chainlinks

                });
            
            GameRegistry.addRecipe(new ItemStack(Item.plateChain, 1), new Object[] {
            	"x x", "xxx", "xxx", 'x', this.Chainlinks
                });
            
            GameRegistry.addRecipe(new ItemStack(Item.legsChain, 1), new Object[] {
            	"xxx", "x x", "x x", 'x', this.Chainlinks
                });
            
            GameRegistry.addRecipe(new ItemStack(Item.bootsChain, 1), new Object[] {
            	"x x", "x x", "   ", 'x', this.Chainlinks
                });
            
            GameRegistry.addRecipe(new ItemStack(Item.bootsChain, 1), new Object[] {
            	"   ", "x x", "x x", 'x', this.Chainlinks
                });
        }
        public void smelting()
        {
        	GameRegistry.addSmelting(CompressedLeather.shiftedIndex, new ItemStack(TannedLeather, 1), 1.0F);
        }

}

 

and use the user: ZeldaCorporation and a test url: http://media-mcw.cursecdn.com/9/9a/Minecon_Cape2012.png

Posted

Hmm I have ic2's source code so I'll look around and see if I can find it :D

"you seem to be THE best modder I've seen imo."

~spynathan

 

ლ(́◉◞౪◟◉‵ლ

Posted

Just so you guys know, Mojang frowns on Capes mods.. You need to download the cape after you set the URL.

 

minecraftInstance.renderEngine.obtainImageData(URL, *IMAGE BUFFER*);

 

Oh endershadow, I like your avatar.. :D

Posted

Oh! I was gonna do that hahaha can i help? The buffer is an image buffer. you can just use the minecraft ImageBufferDownload class. just pass in new ImageBufferDownload().

Posted

I made an API for your Developer cape needs. :D It uses a txt file that has all the usernames you need in it. The txt file is hosted on a server like dropbox. The capes are also hosted there, and all the groups and urls are given in the txt file. :D Don't worry if that sounds complicated, a sample is given on the GitHub.

 

https://github.com/jadar/DeveloperCapesAPI

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • To prevent dependency errors, yes  
    • All of the Dynamic Tree mods?
    • dynamictrees and dtneapolitan are the last mentioned mod - remove these
    • https://mclo.gs/9y5ciD2 anyone ever had this issue?  Internal exception illegal argument exception: unable to fit 3194354 into 3
    • Hi! I'm trying to add my custom models/textures renderer like this: public class PonyPlayerWrapperRenderer extends EntityRenderer<Player> { // wrapper class under my LivingEntityRenderer class implementation private final PonyPlayerRenderer innerRenderer; private final PonyPlayerRenderer innerSlimRenderer; public PonyPlayerWrapperRenderer(final EntityRendererProvider.Context context) { super(context); System.out.println("creating new PonyPlayerWrapperRenderer"); this.innerRenderer = new PonyPlayerRenderer(context, false); this.innerSlimRenderer = new PonyPlayerRenderer(context, true); } @Override public void render(final Player entity, final float yaw, final float partialTicks, final PoseStack poseStack, final MultiBufferSource bufferSource, final int packedLight) { System.out.println("PonyPlayerWrapperRenderer render: " + entity.toString()); if (entity instanceof AbstractClientPlayer clientPlayer) { if (clientPlayer.getModelName().contains("slim")) { innerSlimRenderer.render(clientPlayer, yaw, partialTicks, poseStack, bufferSource, packedLight); } else { innerRenderer.render(clientPlayer, yaw, partialTicks, poseStack, bufferSource, packedLight); } } } @Override public ResourceLocation getTextureLocation(final Player player) { System.out.println("PonyPlayerWrapperRenderer getTextureLocation"); if (player instanceof AbstractClientPlayer clientPlayer) { return clientPlayer.getSkinTextureLocation(); } System.out.println("player instanceof AbstractClientPlayer is false"); return getDefaultSkin(player.getUUID()); } } public class PonyPlayerRenderer extends LivingEntityRenderer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>> { private final PlayerModel<AbstractClientPlayer> earthModel; private final PlayerModel<AbstractClientPlayer> pegasusModel; private final PlayerModel<AbstractClientPlayer> unicornModel; public PonyPlayerRenderer(final EntityRendererProvider.Context context, final boolean slim) { super( context, slim ? new PonyModelSlim(context.bakeLayer(PonyModelSlim.LAYER_LOCATION)) : new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)), 0.5f ); System.out.println("creating new PonyPlayerRenderer"); this.earthModel = slim ? new PonyModelSlim(context.bakeLayer(PonyModelSlim.LAYER_LOCATION)) : new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)); this.pegasusModel = new PegasusModel(context.bakeLayer(PegasusModel.LAYER_LOCATION)); this.unicornModel = new UnicornModel(context.bakeLayer(UnicornModel.LAYER_LOCATION)); } @Override public void render(final AbstractClientPlayer player, final float entityYaw, final float partialTicks, final PoseStack poseStack, final MultiBufferSource buffer, final int packedLight) { final PonyRace race = player.getCapability(PONY_DATA) .map(data -> ofNullable(data.getRace()).orElse(PonyRace.EARTH)) .orElse(PonyRace.EARTH); this.model = switch (race) { case PEGASUS -> pegasusModel; case UNICORN -> unicornModel; case EARTH -> earthModel; }; super.render(player, entityYaw, partialTicks, poseStack, buffer, packedLight); } @Override public ResourceLocation getTextureLocation(final AbstractClientPlayer player) { final PonyRace race = player.getCapability(PONY_DATA) .map(data -> ofNullable(data.getRace()).orElse(PonyRace.EARTH)) .orElse(PonyRace.EARTH); return switch (race) { case EARTH -> fromNamespaceAndPath(MODID, "textures/entity/earth_pony.png"); case PEGASUS -> fromNamespaceAndPath(MODID, "textures/entity/pegasus.png"); case UNICORN -> fromNamespaceAndPath(MODID, "textures/entity/unicorn.png"); }; } } @Mod.EventBusSubscriber(modid = MODID, bus = MOD, value = CLIENT) public class ClientRenderers { // mod bus render registration config @SubscribeEvent public static void onRegisterLayerDefinitions(final EntityRenderersEvent.RegisterLayerDefinitions event) { event.registerLayerDefinition(PonyModel.LAYER_LOCATION, PonyModel::createBodyLayer); event.registerLayerDefinition(PonyModelSlim.LAYER_LOCATION, PonyModelSlim::createBodyLayer); event.registerLayerDefinition(PegasusModel.LAYER_LOCATION, PegasusModel::createBodyLayer); event.registerLayerDefinition(UnicornModel.LAYER_LOCATION, UnicornModel::createBodyLayer); event.registerLayerDefinition(InnerPonyArmorModel.LAYER_LOCATION, InnerPonyArmorModel::createBodyLayer); event.registerLayerDefinition(OuterPonyArmorModel.LAYER_LOCATION, OuterPonyArmorModel::createBodyLayer); } @SubscribeEvent public static void onRegisterRenderers(final EntityRenderersEvent.RegisterRenderers event) { event.registerEntityRenderer(EntityType.PLAYER, PonyPlayerWrapperRenderer::new); System.out.println("onRegisterRenderers end"); } } Method onRegisterRenderers() is called and I can see it being logged. But when I enter the world, my PonyWrapperRenderer render() method doesn't ever seem to be called. I also tried to put my renderer to EntityRenderDispatcher's playerRenderers via reflection: @Mod.EventBusSubscriber(modid = MODID, bus = MOD, value = CLIENT) public class ClientRenderers { @SubscribeEvent public static void onRegisterLayerDefinitions(final EntityRenderersEvent.RegisterLayerDefinitions event) { event.registerLayerDefinition(PonyModel.LAYER_LOCATION, PonyModel::createBodyLayer); event.registerLayerDefinition(PonyModelSlim.LAYER_LOCATION, PonyModelSlim::createBodyLayer); event.registerLayerDefinition(PegasusModel.LAYER_LOCATION, PegasusModel::createBodyLayer); event.registerLayerDefinition(UnicornModel.LAYER_LOCATION, UnicornModel::createBodyLayer); event.registerLayerDefinition(InnerPonyArmorModel.LAYER_LOCATION, InnerPonyArmorModel::createBodyLayer); event.registerLayerDefinition(OuterPonyArmorModel.LAYER_LOCATION, OuterPonyArmorModel::createBodyLayer); } @SubscribeEvent public static void onClientSetup(final FMLClientSetupEvent event) { event.enqueueWork(() -> { try { final EntityRenderDispatcher dispatcher = Minecraft.getInstance().getEntityRenderDispatcher(); final Field renderersField = getEntityRenderDispatcherField("playerRenderers"); final Field itemInHandRenderer = getEntityRenderDispatcherField("itemInHandRenderer"); @SuppressWarnings("unchecked") final Map<String, EntityRenderer<? extends Player>> playerRenderers = (Map<String, EntityRenderer<? extends Player>>)renderersField.get(dispatcher); final PonyPlayerWrapperRenderer renderer = new PonyPlayerWrapperRenderer( new EntityRendererProvider.Context( dispatcher, Minecraft.getInstance().getItemRenderer(), Minecraft.getInstance().getBlockRenderer(), (ItemInHandRenderer)itemInHandRenderer.get(dispatcher), Minecraft.getInstance().getResourceManager(), Minecraft.getInstance().getEntityModels(), Minecraft.getInstance().font ) ); playerRenderers.put("default", renderer); playerRenderers.put("slim", renderer); System.out.println("Player renderers replaced"); } catch (final Exception e) { throw new RuntimeException("Failed to replace player renderers", e); } }); } private static Field getEntityRenderDispatcherField(final String fieldName) throws NoSuchFieldException { final Field field = EntityRenderDispatcher.class.getDeclaredField(fieldName); field.setAccessible(true); return field; } } But I receive the error before Minecraft Client appears (RuntimeException: Failed to replace player renderers - from ClientRenderers onClientSetup() method - and its cause below): java.lang.IllegalArgumentException: No model for layer anotherlittlepony:earth_pony#main at net.minecraft.client.model.geom.EntityModelSet.bakeLayer(EntityModelSet.java:18) ~[forge-1.20.1-47.4.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.entity.EntityRendererProvider$Context.bakeLayer(EntityRendererProvider.java:69) ~[forge-1.20.1-47.4.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at com.thuggeelya.anotherlittlepony.client.renderer.pony.PonyPlayerRenderer.<init>(PonyPlayerRenderer.java:32) ~[main/:?] {re:classloading} at com.thuggeelya.anotherlittlepony.client.renderer.pony.PonyPlayerWrapperRenderer.<init>(PonyPlayerWrapperRenderer.java:24) ~[main/:?] {re:classloading} at com.thuggeelya.anotherlittlepony.client.renderer.ClientRenderers.lambda$onClientSetup$0(ClientRenderers.java:79) ~[main/:?] {re:classloading} ... 33 more Problem appears when EntityRendererProvider context tries to bakeLayer with my model layer location: new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)); // PonyPlayerRenderer.java:32 public class PonyModel extends PlayerModel<AbstractClientPlayer> { // the model class itself public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation( ResourceLocation.fromNamespaceAndPath(MODID, "earth_pony"), "main" ); public PonyModel(final ModelPart root) { super(root, false); } public static LayerDefinition createBodyLayer() { // some CubeListBuilder stuff for model appearance } } Textures PNGs are placed at: resources/assets/[my mod id]/textures/entity. My forge version is 1.20.1. Would appreciate any help.
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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