Jump to content

Cilka

Members
  • Posts

    26
  • Joined

  • Last visited

Everything posted by Cilka

  1. Also, I've took your suggestion, and found the blocks and items that previously were generated are removed despite me having an internal ordering system for registering blocks. Is there anyway that I can translate mod ids for worlds that are already are using the mod, or is it going to be a start from scratch situation?
  2. I haven't be able to run into the issue using the minecraft launcher, but I does occur when running on Technic. I have the same exact mods on both launchers, and running the same version of minecraft(12.23.5.2847). I'm just going to chock this up to the gods punishing me for my coding transgressions.
  3. Okay was this running in forge or under eclipse/intellij? Also, if I cant use com.cilka. then what should I use?
  4. https://github.com/Cilka/Telgttatium Dropbox to jar https://www.dropbox.com/s/zw6gm7xkahjtv63/telgttatium-0.3.2.jar?dl=0
  5. Hi, I am currently making grass blocks. Noticed when I run the mod in dev the textures look as they should. The problem occurs when I run the mod in actual Minecraft the sides of the grass are removed. I used the block/cube_bottom_top parent instead of the block/grass in efforts to get the sides working, but to no avail. Would anyone know why this is the case? Dev environment Prod Environment
  6. Well that puts a hamper to my plan. I think I can get around it by explicitly stating the material (e.g. var mat = Material.ROCK) with switch statements, but that approach sounds ugly. EDIT: I can just populate my hash map with the values that are in my XML file if I can't use reflection. It would be a cleaner then my first idea. Thanks diesieben!
  7. Hi, I just build my mod using the gradle build task, and threw it into my mod pack to test on my client. The client fails silently and does not registered any of my mod. It fails when I try to set material to each block. I do not understand why in the dev environment this will work but in a modpack it will not. May anyone point me in the right direction? Offending code: private static Material translateMaterial(String material) throws IllegalAccessException { Material m = (Material) Arrays.stream(Material.class.getFields()) .filter( f-> f.getName().equalsIgnoreCase(material)) .findFirst() .get() .get(Material.class.getFields()); return m; } Logs:
  8. Sorry it took so long. You may just need to add game stages to your mod folder. Not sure if that will work really, but after examining the modpack and what you told me, seems like the most logical conclusion.
  9. What I found was a mod pack, so it should work out of the box. Do you have any additional mods in your mods folder?
  10. Does one of your mods require game stages by any chance? Seems like its failing because of that.
  11. Hi, I recently reworked a fair bit of my mod to read in data from an XML file. Reason doing so was that I wanted a better way to add blocks for a mod that had over 1000+ objects and counting. In doing so, I shifted my block ids. If I update a world with existing blocks, it will possibly remove the mod blocks. I have an idea that may work, but it is flawed, and will not work the mod is grouped in an existing mod pack that already has blocks ids in place of my block ids. My initial plan was to run the mod, register the blocks as normal, then in the post initialization phase, build a map of block name and id, save that to a file to the assets folder. When I run the mod again, I'll do a check for the file and use that to determine the order of how the blocks are registered. I'm really stumped on this problem, and was hoping anyone more experienced that I am would point me in the right direction. EDIT: Please ignore this post. When I was checking in my old world I noticed blocks were missing, which made me suspect that had something to do with the ids. The main cause was that I used the wrong set of data for my XML data. When it processed to generate the blocks I got a null pointer from the bad data. All is good now.
  12. I see what you are saying. My concern would be if leave the false sides without a model, the model would not look as intended. I'll try what you are suggesting. It will be a good starting point at least.
  13. Post from the dead here. I finally got around to implementing the glass pane frames for my mod. Code wise I think I got the blockstate thing down. There are 16 states that these glass pane frames can be in along with the 4 states that I'm inheriting (North, South, East, West). I took a look at how the blockstate json handles its 4 states. Example here for Cyan Stained Glass Pane: Now the 16 blockstates I've created are to go with the original 4 from BlockPane. If I do what I am thinking of doing, I will have to have 128 models just for 1 glass pane frame. Here is the question, is there a less painful way to create the blockstate and models?
  14. After taking a look at your logs, I found this : Taking an "educated" guess, if you know which mod team chisel makes, you can remove that and see if that works. Other then that, my suggestion would be to remove all your mods, but one and run minecraft after each mod you added. Hope this helps.
  15. I've looked in the .iml file and found that I am using version 1.12.2-14.23.5.2768 as evident here <libelement value="jar://$USER_HOME$/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.23.5.2768/stable/39/forgeSrc-1.12.2-14.23.5.2768.jar!/" /> I'll see if updating forge to the latest version of 1.12.2 will work. Edit: So I don't know why I didn't think of this before, but I have a work around now. @Override public boolean isOpaqueCube(IBlockState state) { return layer != null ? !layer.equals(BlockRenderLayer.TRANSLUCENT) : super.isOpaqueCube(state); } The way I've initialize my blocks I will always use layer instead of getRenderLayer(). Slightly jank, but doesn't blow up my server. Thanks everyone!
  16. I just looked at the source of net.minecraft.block and It had the getRenderLayer() method in there. If I try to use getBlockLayer(), the comipler complains that the method doesn't exist, which looking though source code it doesn't either. I was using a 1.12.2 tutorial from Harry's Tech Reviews as my base. I did notice that many of the things that he does in the tutorial goes against forge coding standards, so something could be off when I copied that line.
  17. Originally I thought that too. I traced it back to the BaseBlock.isOpaqueBlock method and found that replacing the return with false makes the server happy. I can double check, and see what else I've missed.
  18. As the title says, I'm not sure why this method is causing a problem. I'm using the jar from gradle build, I have my sides properly set up (via IProxy), but this only breaks when I run this on a server. I know I'm probably missing something simple, but its not obvious to me. Crash Report: package com.cilka.telgt.block; import com.cilka.telgt.Main; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.util.BlockRenderLayer; public class BaseBlock extends Block { private String blockName; private BlockRenderLayer layer; private String tabName; public BaseBlock(String blockName) { super(Material.ROCK); setCreativeTab(CreativeTabs.MISC); setSoundType(SoundType.CLOTH); this.blockName = blockName; SetRegistrationFromFile(); } public BaseBlock(String blockName, BlockOptions options) { super(options.GetMaterial()); setCreativeTab(options.GetTab()); setSoundType(options.GetSound()); this.blockName = blockName; this.layer = options.GetLayer(); SetRegistrationFromFile(); } public String GetBlockName() { return blockName; } @Override public BlockRenderLayer getRenderLayer() { return layer != null ? layer : super.getRenderLayer(); } @Override public boolean isOpaqueCube(IBlockState state) { return !getRenderLayer().equals(BlockRenderLayer.TRANSLUCENT); } private void SetRegistrationFromFile() { setRegistryName(Main.MODID, blockName); setTranslationKey(blockName); } }
  19. As the title says, I have been able to run the mod in my IDE successfully and test it. Whenever I build the mod and run it with the current modpack I'm testing, I get this: Initializing game java.lang.NoSuchMethodError: net.minecraft.block.Block.setCreativeTab. Here is the crash report with the offending code. I'm kinda lost as to why this is happening now of all times. public static BaseBlock[] AddBlocksToTab(BaseBlock[] blocks, CreativeTabs tab) { for(Block block : blocks) { block.setCreativeTab(tab); } return blocks; } Here is the link to my github in case this does not have enough depth https://github.com/Cilka/Telgttatium/tree/master/java/com/cilka/telgt .
  20. Yes. I know it looks weird, but had to do some name formatting back in 1.7.10 to get textures to load they way I was loading them.
  21. Hi, I'm trying to convert/rewrite a mod I did in 1.7.10 to 1.12.2. Right now I've been able to get my cube/all blocks to render properly, but the grass textures are not displaying. I've tried making the blockstate's variants almost exactly how the vanilla grass blockstate is created and no luck. I've tried using this "variants":{ "inventory":[{}], "normal":[{}] } but only the top and bottom texture rendered. Did I set the BlockState and model jsons correctly? Blockstate { "forge_marker" : 1, "defaults":{ "model": "tel:ashed_grass" }, "variants":{ "snowy=false":[ {"model": "tel:ashed_grass"}, {"model": "tel:ashed_grass", "y":90}, {"model": "tel:ashed_grass", "y":180}, {"model": "tel:ashed_grass", "y":270} ], "snowy=true": [{"model": "tel:snowy_ashed_grass"}] } } Model { "parent":"block/grass", "textures": { "particle": "tel:blocks/biome_dirt/ashed_dirt", "bottom" : "tel:blocks/biome_dirt/ashed_dirt", "top" : "tel:blocks/biome_grass/ashed_grass", "side" : "tel:blocks/biome_grass/ashed_ashed_side" } }
  22. I looked at the example, and there isn't really much i can go off of given what I was trying to do. In the Block3DWeb it only seems to care about what next to the block first. Say if there were two blocks on the bottom and the left side, if the block saw the left block first, It would only care about the left block, not noticing the bottom block. What I need to determine is how block is facing in the world so i know which neighbors to use. It's a good example, but a bit over complicated for what I'm trying to do now ^^".
  23. Hi everyone, right now I'm in middle of converting my 1.7.10 code to 1.12.2. One of the blocks I had in before was a glass pane that changed its texture based on the position of where the pane was in relative to other blocks around it. Before i only used a 2D plane, but I was able to determine what axis the block was placed on using a combo of "canPaneConnectToBlock" and "world.isSideSolid". Now that those methods are gone, I'm trying a to use a 3D plane where North(-Z) , East(-X) and South(+Z), West(+X) are interchangeable. Up and down will be the Y axis. For now, all of my panes, no matter what position i put them in, are calculated as a bottom pane. Can anyone point me in the direction of what I should do for this?
×
×
  • Create New...

Important Information

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