- 235
- 3
- 21
делаю свое измерение
оно должно быть таким же как основной мир но без руд
вроде все сделал, работает, руды не спавнит, залил на термос, тпнулся туда через плагин
при взаимодействии с блоком (ЛКМ/ПКМ) он просто исчезает, а после перезахода я оказываюсь не в моем измерении, а в краю на тех же кордах, а все блоки, которые исчезали остаются на месте
руды я убрал заменив через провайдер для своего измерения ChunkGenerator, в котором после генерации списка биомомов прохожусь по ним и заменяю BiomeDecorator на свой унаследованный от обычного но с пустым методом для спавна руд
оно должно быть таким же как основной мир но без руд
вроде все сделал, работает, руды не спавнит, залил на термос, тпнулся туда через плагин
при взаимодействии с блоком (ЛКМ/ПКМ) он просто исчезает, а после перезахода я оказываюсь не в моем измерении, а в краю на тех же кордах, а все блоки, которые исчезали остаются на месте
руды я убрал заменив через провайдер для своего измерения ChunkGenerator, в котором после генерации списка биомомов прохожусь по ним и заменяю BiomeDecorator на свой унаследованный от обычного но с пустым методом для спавна руд
Java:
public class DimensionRegister
{
public static void register()
{
registerDeathWorld();
}
public static int DEATH_PROVIDER_ID = 2;
public static int DEATH_DIM_ID = 2;
public static String DEATH_DIM_NAME = "death";
public static long DEATH_DIM_SEED = 6637334307563055196L;
public static void registerDeathWorld()
{
DimensionManager.registerProviderType(DEATH_PROVIDER_ID, DeathWorldProvider.class, false);
DimensionManager.registerDimension(DEATH_DIM_ID, DEATH_PROVIDER_ID);
}
}
Java:
public class DeathWorldProvider extends WorldProvider
{
@Override
public String getDimensionName()
{
return DimensionRegister.DEATH_DIM_NAME;
}
@Override
public IChunkProvider createChunkGenerator()
{
return (IChunkProvider)new DeathWorldChunkProviderGenerate(this.worldObj, DimensionRegister.DEATH_DIM_SEED, this.worldObj.getWorldInfo().isMapFeaturesEnabled());
}
}
Java:
public class DeathWorldChunkProviderGenerate extends ChunkProviderGenerate
{
public DeathWorldChunkProviderGenerate(World p_i2006_1_, long p_i2006_2_, boolean p_i2006_4_)
{
super(p_i2006_1_, p_i2006_2_, p_i2006_4_);
}
@Override
public void func_147424_a(int p_147424_1_, int p_147424_2_, Block[] p_147424_3_)
{
byte b0 = 63;
this.biomesForGeneration = this.worldObj.getWorldChunkManager().getBiomesForGeneration(this.biomesForGeneration, p_147424_1_ * 4 - 2, p_147424_2_ * 4 - 2, 10, 10);
//===============================================//
for(int i=0; i<this.biomesForGeneration.length; i++)
{
if(this.biomesForGeneration[i] != null)
{
this.biomesForGeneration[i].theBiomeDecorator = new DeathWorldBiomeDecorator();
}
}
//===============================================//
this.func_147423_a(p_147424_1_ * 4, 0, p_147424_2_ * 4);
for (int k = 0; k < 4; ++k)
{
int l = k * 5;
int i1 = (k + 1) * 5;
for (int j1 = 0; j1 < 4; ++j1)
{
int k1 = (l + j1) * 33;
int l1 = (l + j1 + 1) * 33;
int i2 = (i1 + j1) * 33;
int j2 = (i1 + j1 + 1) * 33;
for (int k2 = 0; k2 < 32; ++k2)
{
double d0 = 0.125D;
double d1 = this.field_147434_q[k1 + k2];
double d2 = this.field_147434_q[l1 + k2];
double d3 = this.field_147434_q[i2 + k2];
double d4 = this.field_147434_q[j2 + k2];
double d5 = (this.field_147434_q[k1 + k2 + 1] - d1) * d0;
double d6 = (this.field_147434_q[l1 + k2 + 1] - d2) * d0;
double d7 = (this.field_147434_q[i2 + k2 + 1] - d3) * d0;
double d8 = (this.field_147434_q[j2 + k2 + 1] - d4) * d0;
for (int l2 = 0; l2 < 8; ++l2)
{
double d9 = 0.25D;
double d10 = d1;
double d11 = d2;
double d12 = (d3 - d1) * d9;
double d13 = (d4 - d2) * d9;
for (int i3 = 0; i3 < 4; ++i3)
{
int j3 = i3 + k * 4 << 12 | 0 + j1 * 4 << 8 | k2 * 8 + l2;
short short1 = 256;
j3 -= short1;
double d14 = 0.25D;
double d16 = (d11 - d10) * d14;
double d15 = d10 - d16;
for (int k3 = 0; k3 < 4; ++k3)
{
if ((d15 += d16) > 0.0D)
{
p_147424_3_[j3 += short1] = Blocks.stone;
}
else if (k2 * 8 + l2 < b0)
{
p_147424_3_[j3 += short1] = Blocks.water;
}
else
{
p_147424_3_[j3 += short1] = null;
}
}
d10 += d12;
d11 += d13;
}
d1 += d5;
d2 += d6;
d3 += d7;
d4 += d8;
}
}
}
}
}
Java:
public class DeathWorldBiomeDecorator extends BiomeDecorator
{
public DeathWorldBiomeDecorator()
{
super();
}
@Override
protected void generateOres()
{
return;
}
}