Posted June 14, 201312 yr Hi, I have been trying for some time now and seem to be getting no-where with my mod. The main thing I am unable to do is work out how to make a pre-defined village spawn at specified co-ordinates in the world. There will only be one village for each world and it will be exactly the same each time. Here is a list of things I would like to know. 1. How do I make a model to be generated into a new Minecraft world on 1st Load. 2. How do I define the co-ordinates where the model will be generated. Any help would be much appreciated, thanks in advance, Cameron(jafacakes2011) Edit-------------------- I have been trying to start with getting a single block to spawn in the middle of the air and nothing happens, here is the code so you can see what is going on: package mods.cstudios.citadel; import net.minecraft.block.Block; import net.minecraft.src.ModLoader; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeInternalHandler; import net.minecraftforge.event.EventPriority; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.world.WorldEvent; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.SidedProxy; 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; @Mod(modid="CStudiosCitadel", name="Citadel", version="0.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class citadel { @Instance("Citadel") // The instance of your mod that Forge uses. public static citadel instance; @SidedProxy(clientSide="mods.cstudios.citadel.client.ClientProxy", serverSide="mods.cstudios.citadel.CommonProxy") // Says where the client and server 'proxy' code is loaded. public static CommonProxy proxy; @PreInit public void preInit(FMLPreInitializationEvent event) { // Stub Method } @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); } @PostInit public void postInit(FMLPostInitializationEvent event) { // Stub Method } @ForgeSubscribe(priority = EventPriority.HIGHEST) public void WORLDSAVE(WorldEvent.Save event){ ModLoader.getMinecraftInstance().theWorld.setBlock(0, 100, 0, Block.blockDiamond.blockID); } } The bit that isn't working is the WORLDSAVE part,am I using the event correctly? I am getting no errors so i am very confused, I believe that if I can get 1 block to spawn the rest should be like building a house by adding 1 to the coordinates.
June 15, 201312 yr (1) You want to use a model instead of a block-based structure? (2) Try (I think) world.mapStorage or world.perWorldStorage. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 15, 201312 yr Author (1) No, I am wanting to use a structure made out of blocks that is then possibly saved and then this will shorten code. Otherwise I guess I will just have to code it brick by brick. (2)I have managed to work out the coordinates, I just cant seem to be able to use/find the correct event so that the block is placed when the world is loaded for the first time. Thanks for your help, If you have any idea what the event that I will need is please do tell me. Also tell me if I am using it wrong as I have doubts about the way I am using the "WorldEvent.Save"(I know this is the wrong event I was just testing things out.)
June 15, 201312 yr (1) No, I am wanting to use a structure made out of blocks that is then possibly saved and then this will shorten code. Otherwise I guess I will just have to code it brick by brick. (2)I have managed to work out the coordinates, I just cant seem to be able to use/find the correct event so that the block is placed when the world is loaded for the first time. Thanks for your help, If you have any idea what the event that I will need is please do tell me. Also tell me if I am using it wrong as I have doubts about the way I am using the "WorldEvent.Save"(I know this is the wrong event I was just testing things out.) (1) You could make it customizable or load from a file, certainly... but how you load the file is up to you. (2) You want to make and register an IWorldGenerator. Check, in the generate() function, if the coordinates you have chosen are in the specified chunk (that function gets called for every chunk generated.) BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 17, 201312 yr Author Thanks for all the help, I managed to get it working however I am unable to get ladders to spawn... any ideas?
June 17, 201312 yr Thanks for all the help, I managed to get it working however I am unable to get ladders to spawn... any ideas? I did hear that ladders were broken in a recent Forge update; try updating your Forge. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
June 17, 201312 yr Thanks for all the help, I managed to get it working however I am unable to get ladders to spawn... any ideas? Ladders are strange. They either have metadata that specifies the direction they are (easy to modify), or internal flags (like a bed) that makes it hard. Use normal coding if it has metadata, or reflection if it is the internal flags. I'm too lazy to look it up... So, what would happen if I did push that shiny red button over there? ... Really? ... Can I try it? ... Damn.
June 17, 201312 yr Author I'm using the most recent forge, and I am not entirely familiar with metadata and flags...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.