public class ComicWorldGen implements IWorldGenerator, IVillageCreationHandler{
//Normal Worldgen Methods ------------------------------------------------------------------------
@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
System.out.println("generator called");
switch(world.provider.getDimensionId()){
case -1:
generateNether(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
case 0:
System.out.println("overworld");
generateOverworld(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
case 1:
generateEnd(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
default:
return;
}
}
private void generateEnd(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
private void generateOverworld(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
private void generateNether(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
//End Normal Worldgen ----------------------------------------------------------------------------
//Village Generation -----------------------------------------------------------------------------
public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, int i) {
return new PieceWeight(ComponentComicBookStore.class, 10, i + random.nextInt(1)); //Play around with these numbers!
}
public Class<?> getComponentClass()
{
return ComponentComicBookStore.class;
}
@Override
public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) {
return ComponentComicBookStore.buildComponent(startPiece, pieces, random, p1, p2, p3, facing, p5);
}
//End village generation -------------------------------------------------------------------------
}
Hey, I was wondering if I could add item name localization via code or via an external file loaded during the init() method of a mod. This would be similar to 1.6 LanguageRegistry.
Hello, I'm trying to make my mod load texture assets from an external location then render them to the screen. I did some research and found that I need to create an implementation of IResourcePack and register it to Minecraft using Reflector. I have no idea how to do that and was hoping someone could provide me with an example or tutorial. (Or redirect me to an already existing one)
0
Sorry, when I updated the mod it was too hard to keep large trees in.
Sorry,
-Zenith
0
Thanks for doing this!
-Zenith
0
Now updated to 1.10 See the curseforge page
https://mods.curse.com/mc-mods/minecraft/238465-decoratable-christmas-trees-mod
0
Just checking, your skype picture is a purple link?
0
If you can that would be awesome, I'll let you bugfix it a bit but I can put it in some videos.
BTW I can be a resource for developing this because I am a 15 year old modder myself and I know learning to mod is hard. You can find my mod here:
http://mods.curse.com/mc-mods/minecraft/238465-decoratable-christmas-trees-mod
I don't know GLSL but if there is something in Java code you need help with I can try.
Also my Youtube channel is here:
https://www.youtube.com/channel/UCh-4MWWb0hHEGuJdAtvRV2w
So maybe one day we could do a video together.
Great start and I look forward to seeing what you do with this, Good Luck!
-Zenith
1
As a begining modder myself, good job!
Just wondering, could I use this in Youtube Videos? I can link this thread and give you some support if you need it.
Thanks, and good job,
-Zenith
0
Did some more research. Does this by chance have to do with Minecraft Forge 1.8 and I just need to wait for it to be fixed?
Thanks,
-Zenith
0
Hey guys, I am wondering how I can add custom structures to a vanilla village.
Thanks for all the help!
Here's the code I use now:
Registration:
The ComponentComicBookStore.java
package me.kk47.comics.village.worldgen;
import java.util.List;
import java.util.Random;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraft.world.gen.structure.StructureBoundingBox;
import net.minecraft.world.gen.structure.StructureComponent;
import net.minecraft.world.gen.structure.StructureVillagePieces;
public class ComponentComicBookStore extends StructureVillagePieces.Village{
private EnumFacing direction;
private static int widX = 5;
private static int heiY = 5;
private static int lenZ = 5;
public ComponentComicBookStore(StructureVillagePieces.Start villagePiece, int par2, Random par3Random, StructureBoundingBox par4StructureBoundingBox, EnumFacing par5) {
this.coordBaseMode = par5;
this.boundingBox = par4StructureBoundingBox;
this.direction = par5;
}
public static ComponentComicBookStore buildComponent(StructureVillagePieces.Start villagePiece, List pieces, Random random, int x, int y, int z, EnumFacing p4, int p5) {
//TODO add rotation
StructureBoundingBox structureboundingbox;
structureboundingbox = new StructureBoundingBox(0, 0, 0, widX, heiY, lenZ);
return (canVillageGoDeeper(structureboundingbox)) && (StructureComponent.findIntersecting(pieces, structureboundingbox) == null) ? new ComponentComicBookStore(villagePiece, p5, random, structureboundingbox, p4) : null;
}
protected void writeStructureToNBT(NBTTagCompound tagCompound){
super.writeStructureToNBT(tagCompound);
}
protected void readStructureFromNBT(NBTTagCompound tagCompound){
super.readStructureFromNBT(tagCompound);
}
@Override
public boolean addComponentParts(World world, Random random, StructureBoundingBox sbb){
//TODO Correct
System.out.println("Placing using Bounding box of " + sbb.toString());
this.fillWithBlocks(world, this.boundingBox, 0, 0, 0, 5, 5, 5, Blocks.stone.getDefaultState(), Blocks.stone.getDefaultState(), false);
return false;
}
}
ComicWorldGen.java Has regular worldgen increase I need it later. Just ignore it.
package me.kk47.comics.worldgen;
import java.util.List;
import java.util.Random;
import me.kk47.comics.village.worldgen.ComponentComicBookStore;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.structure.StructureComponent;
import net.minecraft.world.gen.structure.StructureVillagePieces;
import net.minecraft.world.gen.structure.StructureVillagePieces.PieceWeight;
import net.minecraft.world.gen.structure.StructureVillagePieces.Start;
import net.minecraft.world.gen.structure.StructureVillagePieces.Village;
import net.minecraftforge.fml.common.IWorldGenerator;
import net.minecraftforge.fml.common.registry.VillagerRegistry.IVillageCreationHandler;
public class ComicWorldGen implements IWorldGenerator, IVillageCreationHandler{
//Normal Worldgen Methods ------------------------------------------------------------------------
@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
System.out.println("generator called");
switch(world.provider.getDimensionId()){
case -1:
generateNether(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
case 0:
System.out.println("overworld");
generateOverworld(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
case 1:
generateEnd(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
return;
default:
return;
}
}
private void generateEnd(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
private void generateOverworld(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
private void generateNether(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
}
//End Normal Worldgen ----------------------------------------------------------------------------
//Village Generation -----------------------------------------------------------------------------
public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, int i) {
return new PieceWeight(ComponentComicBookStore.class, 10, i + random.nextInt(1)); //Play around with these numbers!
}
public Class<?> getComponentClass()
{
return ComponentComicBookStore.class;
}
@Override
public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) {
return ComponentComicBookStore.buildComponent(startPiece, pieces, random, p1, p2, p3, facing, p5);
}
//End village generation -------------------------------------------------------------------------
}
0
Stargates in Vanilla minecraft
A redstone contraption adding Stargates to Minecraft.
More Info coming soon. For now Check out our Youtube Video!
Download Gate Craft 1.0
0
Turns out you can override the getDisplayName() or similar in from Item and provide a new name.
Thanks,
-Zenith
0
Thanks, I'll try it!
0
Because I am going to load items from a file defining them so I wont know an items unlocalized name or localized name until runtime.
0
Hey, I was wondering if I could add item name localization via code or via an external file loaded during the init() method of a mod. This would be similar to 1.6 LanguageRegistry.
Thanks,
-Zenith08
0
Thanks, I'll try it,
-Zenith08
0
Hello, I'm trying to make my mod load texture assets from an external location then render them to the screen. I did some research and found that I need to create an implementation of IResourcePack and register it to Minecraft using Reflector. I have no idea how to do that and was hoping someone could provide me with an example or tutorial. (Or redirect me to an already existing one)
Thanks for all the help,
-Zenith08