Jump to content

heero

Members
  • Posts

    13
  • Joined

  • Last visited

Everything posted by heero

  1. Well... using different location solve both problem at once. I make my blockstate JSON link to fictive model location (by adding a custom prefix) My custom loader intercept that prefix, reconstruct the real location the call the getModel from the registry. Wrap the result in my ISmartModel. Now I just have to make my item model use the real location as parent.
  2. Yeah, I will try that. No idea for the second problem ?
  3. Ok, So actually I'm using a custom loader to wrap the vanilla IModel. It's a title ugly, but it seem to work. public class OverSlabModelLoader implements ICustomModelLoader { public static boolean disableCustomLoader = false; @Override public boolean accepts(ResourceLocation modelLocation) { return !disableCustomLoader && Reference.MODID.equals(modelLocation.getResourceDomain()) && modelLocation.getResourcePath().contains("plant"); } @Override public IModel loadModel(ResourceLocation modelLocation) throws IOException { disableCustomLoader = true; final IModel model; try { model = ModelLoaderRegistry.getModel(new ResourceLocation(modelLocation.getResourceDomain(), modelLocation.getResourcePath().substring(modelLocation.getResourcePath().indexOf('/') + 1))); } finally { disableCustomLoader = false; } return new ModelOverSlab(modelLocation, model); } @Override public void onResourceManagerReload(IResourceManager resourceManager) {} } Do you know a better solution ? My last problem is with the ItemBlock, or any model that use my previous block as parent. The getTexture method fail because the parent of a VanillaWrapper can't be a custom model. But I'm just wrapping a vanillaModel, so perhapt there is a way to get that block. I tryed various solutions, with no success. I didn't find any way to set the parent of block BlockModel wrapped in the vanillaWrapper. Everything is private. So, I'm curious, what I want to do seem pretty common (Load a vanilla model, wrap in an ISmartModel using generic unlisted properties). Am I missing something ?
  4. Hi, I want to be able to load vanilla a model, then update some properties (translation) before baking it. I saw in the code that VanillaLoader what the loader by default, and VanillaModelWrapper was the default created model. But both class are private. Is there a method to that ?
  5. So actualy I looking to wrap the VanillaLoader (or every loader ?) in my CustomLoader. Is that a good solution ? Is there an easy way to do that ?
  6. Hi, Sorry, not realy good with english, hard to explain myself. So I have some sort of slab block in my mod ( like the stone slab and wood slab in vanilla). Then I have some "special blocks", and when they are placed over a slab block, I want to render them like they where touching the slab ( so posY - 0.5 to be simple). I have many of theses "special blocks" with all kind of differents properties, and I don't want to duplicate each model and decrement the Y position. I want to dynamically shift. So I need to : 1) Check the block below and assign the right value to the unlistedproperty (that part is good) 2) Intercept the model and modifying the Y property of each quad Is that clear ?
  7. Hi, I need some help to start with the Model system in 1.8.9 : I want to create a block that can be rendered at different Y positions. the position depend on the block below. So I created an UnlistedProperty ("bottom_position") Now I want to take the model defined in JSON and update the Y position before rendering. I can't figure where to start. There is a lot of interfaces/class (ICustomModelLoader, ISmartBlockModel, ...) but the documentation is poor (or well hiden). Can you give me a direction to begin with that stuff ? Thx
  8. That's what I want ? All my Dirt must be Opaque (or not). It's just an helper so I don't have to create a new Class for un-opaque Block. I did that with many Block property in my BlockGeneric. So the solution is pretty obvious (ie. create that Class), but I juste want to understand Why
  9. @Mod(modid = MyMod.MODID, version = MyMod.VERSION) public class MyMod { public static final String MODID = "mymod"; public static final String VERSION = "1.0"; @EventHandler public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerBlock(new BlockGeneric(Material.ground).setUnlocalizedName("dirt"), "dirt"); } public class BlockGeneric extends Block { private boolean opaque = true; public BlockGeneric(Material material) { super(material); } @Override public boolean isOpaqueCube() { return opaque; } } } It's probably some kind of java optimisation, but I don't know how
  10. Hi, The Minecraft Block isOpaqueCube function return the constant True. I created a Block subclass with an opaque cube parameter to be able to easily change that value. The default value is still True. I created a new Dirt Block with my new class. When I fill the world (50 first layers) with is, and I try to put Water, there is a performances Drop (60 -> 30). If my new Dirt Block extend the Minecraft Block, there is no drop. I'm not able to explain it, any idea ?
  11. Thx, I'm upgrading my mod from 1.7.10 to 1.8.9, so yeah it's probably that. That solved my problem!
  12. Hi, What I want : Teleport the player when I hit the H key. What I get : That work, but I get some strange warnings My warnings : 00:34:37] [Client thread/INFO]: [CHAT] Player447 has just earned the achievement [Taking Inventory] [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:43] [Netty Server IO #1/WARN]: * There is an attempt to load a chunk (4,-1) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager$PlayerInstance.<init>(PlayerManager.java:395) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.getPlayerInstance(PlayerManager.java:106) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.addPlayer(PlayerManager.java:150) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.ServerConfigurationManager.preparePlayer(ServerConfigurationManager.java:269)... [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:43] [server thread/WARN]: **************************************** [00:34:43] [server thread/WARN]: * There is an attempt to load a chunk (-5,6) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:43] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:43] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:43] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:99) [00:34:43] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:200) [00:34:43] [server thread/WARN]: * at net.minecraft.world.World.getChunkFromChunkCoords(World.java:336) [00:34:43] [server thread/WARN]: * at net.minecraft.world.World.getChunkFromBlockCoords(World.java:328)... [00:34:43] [server thread/WARN]: **************************************** [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:43] [Netty Server IO #1/WARN]: * There is an attempt to load a chunk (8,0) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager$PlayerInstance.<init>(PlayerManager.java:395) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.getPlayerInstance(PlayerManager.java:106) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.addPlayer(PlayerManager.java:150) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.ServerConfigurationManager.preparePlayer(ServerConfigurationManager.java:269)... [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:43] [Netty Server IO #1/WARN]: * There is an attempt to load a chunk (-2,- in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager$PlayerInstance.<init>(PlayerManager.java:395) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.getPlayerInstance(PlayerManager.java:106) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.PlayerManager.addPlayer(PlayerManager.java:150) [00:34:43] [Netty Server IO #1/WARN]: * at net.minecraft.server.management.ServerConfigurationManager.preparePlayer(ServerConfigurationManager.java:269)... [00:34:43] [Netty Server IO #1/WARN]: **************************************** [00:34:44] [server thread/WARN]: **************************************** [00:34:44] [server thread/WARN]: * There is an attempt to load a chunk (-10,4) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:99) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:200) [00:34:44] [server thread/WARN]: * at net.minecraft.world.World.getChunkFromChunkCoords(World.java:336) [00:34:44] [server thread/WARN]: * at net.minecraft.world.WorldServer.updateBlocks(WorldServer.java:376)... [00:34:44] [server thread/WARN]: **************************************** [00:34:44] [server thread/WARN]: **************************************** [00:34:44] [server thread/WARN]: * There is an attempt to load a chunk (-1,-12) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:99) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:200) [00:34:44] [server thread/WARN]: * at net.minecraft.world.World.getChunkFromChunkCoords(World.java:336) [00:34:44] [server thread/WARN]: * at net.minecraft.world.WorldServer.updateBlocks(WorldServer.java:376)... [00:34:44] [server thread/WARN]: **************************************** [00:34:44] [server thread/WARN]: **************************************** [00:34:44] [server thread/WARN]: * There is an attempt to load a chunk (-8,12) in di >mension 3 that is already being loaded. This will cause weird chunk breakages. [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:152) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:129) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:99) [00:34:44] [server thread/WARN]: * at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:200) [00:34:44] [server thread/WARN]: * at net.minecraft.world.World.getChunkFromChunkCoords(World.java:336) [00:34:44] [server thread/WARN]: * at net.minecraft.world.WorldServer.updateBlocks(WorldServer.java:376)... [00:34:44] [server thread/WARN]: **************************************** My code : // ExampleMod @Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) public class ExampleMod { public static final String MODID = "examplemod"; public static final String VERSION = "1.0"; public static final SimpleNetworkWrapper packetPipeline = NetworkRegistry.INSTANCE.newSimpleChannel("test"); @EventHandler public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerItem(new ItemTest().setCreativeTab(CreativeTabs.tabMisc).setUnlocalizedName("item_test"), "item_test"); GameRegistry.registerWorldGenerator(new WorldGeneratorTest(), 0); DimensionManager.registerProviderType(3, WorldProviderSurface.class, false); DimensionManager.registerDimension(3, 3); packetPipeline.registerMessage(HandlerTeleportation.class, PacketTeleportation.class, 0, Side.SERVER); } private class WorldGeneratorTest implements IWorldGenerator { @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { } } public class ItemTest extends Item { @Override public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn) { if (!worldIn.isRemote) { return itemStackIn; } packetPipeline.sendToServer(new PacketTeleportation()); return itemStackIn; } } } // HandlerTeleportation public class HandlerTeleportation implements IMessageHandler<PacketTeleportation, IMessage> { @Override public IMessage onMessage(PacketTeleportation message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; player.mcServer.getConfigurationManager().transferPlayerToDimension(player, 3, new TeleporterTest(MinecraftServer.getServer().worldServerForDimension(3))); return null; } } // PacketTeleportation public class PacketTeleportation implements IMessage { @Override public void fromBytes(ByteBuf buffer) { } @Override public void toBytes(ByteBuf buffer) { } } // TeleporterTest public class TeleporterTest extends Teleporter { public TeleporterTest(WorldServer par1WorldServer) { super(par1WorldServer); } @Override public void placeInPortal(Entity entity, float rotationYaw) { entity.setPositionAndUpdate(0, 100, 0); } @Override public void removeStalePortalLocations(long par1) { } } The code doesn't show the key binding part, because it's not necesary to reproduce de bug. If I try to teleport from the Item function itself, there is no warning.
×
×
  • Create New...

Important Information

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