Jump to content

[1.5.2]Custom Village/Town


jafacakes2011

Recommended Posts

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.

Link to comment
Share on other sites

(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.)

Link to comment
Share on other sites

(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.

Link to comment
Share on other sites

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... :P

So, what would happen if I did push that shiny red button over there? ... Really? ... Can I try it? ... Damn.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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