Added a temporary setup for adding biomes
This commit is contained in:
parent
061f762f9a
commit
7ae104c563
|
@ -1,6 +1,60 @@
|
|||
package biomesoplenty.api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import biomesoplenty.common.world.GenLayerBiomeBOP;
|
||||
|
||||
public class BOPBiomeHelper
|
||||
{
|
||||
public static HashMap<String, BiomeGenBase> biomeList = new HashMap();
|
||||
|
||||
public static void registerBiome(BiomeGenBase biome, String name)
|
||||
{
|
||||
biomeList.put(name, biome);
|
||||
}
|
||||
|
||||
public static BiomeGenBase get(String name)
|
||||
{
|
||||
return biomeList.get(name);
|
||||
}
|
||||
|
||||
public static ArrayList<BiomeGenBase> getCorrespondingTemperatureTypeList(BOPBiomeTemperatureType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case HOT:
|
||||
return GenLayerBiomeBOP.desertBiomes;
|
||||
|
||||
case WARM:
|
||||
return GenLayerBiomeBOP.warmBiomes;
|
||||
|
||||
case COOL:
|
||||
return GenLayerBiomeBOP.coldBiomes;
|
||||
|
||||
case ICY:
|
||||
return GenLayerBiomeBOP.icyBiomes;
|
||||
|
||||
default:
|
||||
return GenLayerBiomeBOP.warmBiomes;
|
||||
}
|
||||
}
|
||||
|
||||
public enum BOPBiomeTemperatureType
|
||||
{
|
||||
HOT, WARM, COOL, ICY;
|
||||
}
|
||||
|
||||
public static class BOPBiomeListEntry
|
||||
{
|
||||
public BiomeGenBase biome;
|
||||
public BOPBiomeTemperatureType temperatureType;
|
||||
|
||||
public BOPBiomeListEntry(BiomeGenBase biome, BOPBiomeTemperatureType temperatureType)
|
||||
{
|
||||
this.biome = biome;
|
||||
this.temperatureType = temperatureType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package biomesoplenty.common.core;
|
||||
|
||||
import biomesoplenty.common.world.ForcedDecorators;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import biomesoplenty.api.BOPBiomeHelper;
|
||||
import biomesoplenty.api.BOPBiomeHelper.BOPBiomeListEntry;
|
||||
import biomesoplenty.api.BOPBiomeHelper.BOPBiomeTemperatureType;
|
||||
import biomesoplenty.common.world.WorldGenFieldAssociation;
|
||||
import biomesoplenty.common.world.WorldTypeBOP;
|
||||
import biomesoplenty.common.world.decoration.ForcedDecorators;
|
||||
|
||||
public class BOPBiomes
|
||||
{
|
||||
|
@ -10,12 +14,47 @@ public class BOPBiomes
|
|||
|
||||
public static void init()
|
||||
{
|
||||
initializeBiomes();
|
||||
registerBiomes();
|
||||
|
||||
WorldGenFieldAssociation.init();
|
||||
ForcedDecorators.init();
|
||||
}
|
||||
|
||||
private static void initializeBiomes()
|
||||
private static void registerBiomes()
|
||||
{
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.desert, BOPBiomeTemperatureType.HOT));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.desert, BOPBiomeTemperatureType.HOT));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.desert, BOPBiomeTemperatureType.HOT));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.field_150588_X, BOPBiomeTemperatureType.HOT));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.field_150588_X, BOPBiomeTemperatureType.HOT));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.plains, BOPBiomeTemperatureType.HOT));
|
||||
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.forest, BOPBiomeTemperatureType.WARM));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.field_150585_R, BOPBiomeTemperatureType.WARM));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.extremeHills, BOPBiomeTemperatureType.WARM));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.plains, BOPBiomeTemperatureType.WARM));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.field_150583_P, BOPBiomeTemperatureType.WARM));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.swampland, BOPBiomeTemperatureType.WARM));
|
||||
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.forest, BOPBiomeTemperatureType.COOL));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.extremeHills, BOPBiomeTemperatureType.COOL));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.taiga, BOPBiomeTemperatureType.COOL));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.plains, BOPBiomeTemperatureType.COOL));
|
||||
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.icePlains, BOPBiomeTemperatureType.ICY));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.icePlains, BOPBiomeTemperatureType.ICY));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.icePlains, BOPBiomeTemperatureType.ICY));
|
||||
registerBiome(new BOPBiomeListEntry(BiomeGenBase.field_150584_S, BOPBiomeTemperatureType.ICY));
|
||||
}
|
||||
|
||||
public static void registerBiome(BOPBiomeListEntry biome)
|
||||
{
|
||||
BOPBiomeHelper.registerBiome(biome.biome, biome.biome.biomeName);
|
||||
addBiomeToList(biome);
|
||||
}
|
||||
|
||||
public static void addBiomeToList(BOPBiomeListEntry biome)
|
||||
{
|
||||
BOPBiomeHelper.getCorrespondingTemperatureTypeList(biome.temperatureType).add(biome.biome);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,9 @@ import net.minecraft.world.World;
|
|||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
|
||||
import biomesoplenty.common.world.ForcedDecorators;
|
||||
import biomesoplenty.common.world.IBOPDecoration;
|
||||
import biomesoplenty.common.world.WorldGenFieldAssociation;
|
||||
import biomesoplenty.common.world.decoration.ForcedDecorators;
|
||||
import biomesoplenty.common.world.decoration.IBOPDecoration;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
|
||||
public class DecorateBiomeEventHandler
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
package biomesoplenty.common.world;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.world.WorldType;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.gen.layer.GenLayer;
|
||||
import net.minecraft.world.gen.layer.GenLayerBiome;
|
||||
import net.minecraft.world.gen.layer.IntCache;
|
||||
|
||||
public class GenLayerBiomeBOP extends GenLayerBiome
|
||||
{
|
||||
public static ArrayList<BiomeGenBase> desertBiomes = new ArrayList();
|
||||
public static ArrayList<BiomeGenBase> warmBiomes = new ArrayList();
|
||||
public static ArrayList<BiomeGenBase> coldBiomes = new ArrayList();
|
||||
public static ArrayList<BiomeGenBase> icyBiomes = new ArrayList();
|
||||
|
||||
public GenLayerBiomeBOP(long par1, GenLayer parentLayer, WorldType worldType)
|
||||
{
|
||||
super(par1, parentLayer, worldType);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int[] getInts(int par1, int par2, int par3, int par4)
|
||||
{
|
||||
int[] aint = this.parent.getInts(par1, par2, par3, par4);
|
||||
int[] aint1 = IntCache.getIntCache(par3 * par4);
|
||||
|
||||
for (int i1 = 0; i1 < par4; ++i1)
|
||||
{
|
||||
for (int j1 = 0; j1 < par3; ++j1)
|
||||
{
|
||||
this.initChunkSeed((long)(j1 + par1), (long)(i1 + par2));
|
||||
int biomeID = aint[j1 + i1 * par3];
|
||||
//TODO: 111100000000
|
||||
int l1 = (biomeID & 3840) >> 8;
|
||||
biomeID &= -3841;
|
||||
|
||||
//TODO: isOceanBiome()
|
||||
if (func_151618_b(biomeID))
|
||||
{
|
||||
aint1[j1 + i1 * par3] = biomeID;
|
||||
}
|
||||
else if (biomeID == BiomeGenBase.mushroomIsland.biomeID)
|
||||
{
|
||||
aint1[j1 + i1 * par3] = biomeID;
|
||||
}
|
||||
else if (biomeID == 1)
|
||||
{
|
||||
if (l1 > 0)
|
||||
{
|
||||
if (this.nextInt(3) == 0)
|
||||
{
|
||||
//TODO: mesaPlateau
|
||||
aint1[j1 + i1 * par3] = BiomeGenBase.field_150608_ab.biomeID;
|
||||
}
|
||||
else
|
||||
{
|
||||
//TODO: mesaPlateau F
|
||||
aint1[j1 + i1 * par3] = BiomeGenBase.field_150607_aa.biomeID;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
aint1[j1 + i1 * par3] = this.desertBiomes.get(this.nextInt(this.desertBiomes.size())).biomeID;
|
||||
}
|
||||
}
|
||||
else if (biomeID == 2)
|
||||
{
|
||||
if (l1 > 0)
|
||||
{
|
||||
aint1[j1 + i1 * par3] = BiomeGenBase.jungle.biomeID;
|
||||
}
|
||||
else
|
||||
{
|
||||
aint1[j1 + i1 * par3] = this.warmBiomes.get(this.nextInt(this.warmBiomes.size())).biomeID;
|
||||
}
|
||||
}
|
||||
else if (biomeID == 3)
|
||||
{
|
||||
if (l1 > 0)
|
||||
{
|
||||
//TODO: megaTaiga
|
||||
aint1[j1 + i1 * par3] = BiomeGenBase.field_150578_U.biomeID;
|
||||
}
|
||||
else
|
||||
{
|
||||
aint1[j1 + i1 * par3] = this.coldBiomes.get(this.nextInt(this.coldBiomes.size())).biomeID;
|
||||
}
|
||||
}
|
||||
else if (biomeID == 4)
|
||||
{
|
||||
aint1[j1 + i1 * par3] = this.icyBiomes.get(this.nextInt(this.icyBiomes.size())).biomeID;
|
||||
}
|
||||
else
|
||||
{
|
||||
aint1[j1 + i1 * par3] = BiomeGenBase.mushroomIsland.biomeID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return aint1;
|
||||
}
|
||||
}
|
|
@ -1,6 +1,9 @@
|
|||
package biomesoplenty.common.world;
|
||||
|
||||
import net.minecraft.world.WorldType;
|
||||
import net.minecraft.world.gen.layer.GenLayer;
|
||||
import net.minecraft.world.gen.layer.GenLayerBiomeEdge;
|
||||
import net.minecraft.world.gen.layer.GenLayerZoom;
|
||||
|
||||
public class WorldTypeBOP extends WorldType
|
||||
{
|
||||
|
@ -9,4 +12,12 @@ public class WorldTypeBOP extends WorldType
|
|||
super("BIOMESOP");
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer)
|
||||
{
|
||||
GenLayer ret = new GenLayerBiomeBOP(200L, parentLayer, this);
|
||||
ret = GenLayerZoom.magnify(1000L, ret, 2);
|
||||
ret = new GenLayerBiomeEdge(1000L, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package biomesoplenty.common.world;
|
||||
package biomesoplenty.common.world.decoration;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package biomesoplenty.common.world;
|
||||
package biomesoplenty.common.world.decoration;
|
||||
|
||||
public interface IBOPDecoration
|
||||
{
|
|
@ -1,6 +1,6 @@
|
|||
package biomesoplenty.common.world.forceddecorators;
|
||||
|
||||
import biomesoplenty.common.world.IBOPDecoration;
|
||||
import biomesoplenty.common.world.decoration.IBOPDecoration;
|
||||
|
||||
public class SwampForcedDecorator implements IBOPDecoration
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue