Jump to content

daedleus12

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by daedleus12

  1. Okay I'm working on it. Will tell you how it goes.
  2. Okay so I've come up with a very hacky method: I generate the structures in a superflat world in 1.8, move the world to 1.12 and use structure blocks to save them in files, then basically create a new mod to generate these structures based on specifications in a config file (rarity, etc.). If theoretically this goes as planned, how will I use other things like loot tables? will I have to generate chests separately? Thanks for helping out btw.
  3. The comment lines were either the decompiler or the author's doing. Also yes I will upload them to Github (which was probably a better idea retrospectively). How do you suppose I use structure and/or block files? Each structure is made of hundreds of individual block placements, so I have no idea what the big picture should be.
  4. I'm fairly new to Minecraft modding in general, but I do have a fair amount of experience coding in C++ and a touch of Java knowledge as well. That being said, I've been trying to port one of my favorite dungeon mods (DungeonPack) back in the day from 1.8 to 1.12. Its been going pretty smooth overall, probably because the mod only generates structures and adds no mobs/items etc., and Forge recognizes it and loads it without a hiccup. Problem is, none of the structures seem to generate. The way I believe this mod generates structures is by placing each block individually, specifically through a function called addBlock(), which goes like this: public void addBlock(int par1, int par2, int par3, int par4) { this.world.setBlockState(new BlockPos(par1, par2, par3), Block.getStateById(par4)); } Each structure's class calls this function hundreds of times, using different parameters which I'm guessing is for position and type of block. There is also a less used function called addBlockAndMetadata(): public void addBlockAndMetadata(int par1, int par2, int par3, int par4, int par5) { this.world.setBlockState(new BlockPos(par1, par2, par3), Block.getBlockById(par4).getStateFromMeta(par5)); } Finally, there's addBlockSecond(), which appears only twice and is identical to the first function. This one is only used when the first function is overridden by a class, which I assume is to add additional prerequisites? I'm entirely blind to what any of these variables actually mean: public void addBlock(int par1, int par2, int par3, int par4) { if (par4 < 0) { par4 = 53; } addBlockSecond(par1, par2, par3, par4); } I don't know how helpful these are, but they're good to have in order to understand the context of this problem. What I think the source of the problem is are the things I had to change between versions. Eclipse instructed me to change the object world (used above) from the class World to WorldServer (which I believe inherits from World). Also, MinecraftServer.getServer().worldServerForDimension(); wasn't valid, and I had to change it to FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(0); Which was recommended here: http://www.minecraftforge.net/forum/topic/60383-how-is-worldserverfordimension-called-in-the-newest-version-of-forge/ These changes may have a hand in the structures not generating, as the addBlock() function relies on the world object, and thus by extension the return value of the function above as well as the class type (as far as I know) do as well. So perhaps the functionality didn't quite carry over from previous versions? The source code is available here: https://github.com/ie04/dungeonpackreloaded. Thanks in advance.
×
×
  • Create New...

Important Information

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