63 lines
No EOL
1.6 KiB
Java
63 lines
No EOL
1.6 KiB
Java
package appeng.worldgen.meteorite;
|
|
|
|
|
|
import appeng.api.definitions.IBlockDefinition;
|
|
import appeng.util.Platform;
|
|
import net.minecraft.block.Block;
|
|
|
|
|
|
public class FalloutCopy extends Fallout
|
|
{
|
|
private static final double SPECIFIED_BLOCK_THRESHOLD = 0.9;
|
|
private static final double AIR_BLOCK_THRESHOLD = 0.8;
|
|
private static final double BLOCK_THRESHOLD_STEP = 0.1;
|
|
|
|
private final Block block;
|
|
private final int meta;
|
|
private final MeteoriteBlockPutter putter;
|
|
|
|
public FalloutCopy( final IMeteoriteWorld w, final int x, final int y, final int z, final MeteoriteBlockPutter putter, final IBlockDefinition skyStoneDefinition )
|
|
{
|
|
super( putter, skyStoneDefinition );
|
|
this.putter = putter;
|
|
this.block = w.getBlock( x, y, z );
|
|
this.meta = w.getBlockMetadata( x, y, z );
|
|
}
|
|
|
|
@Override
|
|
public void getRandomFall( final IMeteoriteWorld w, final int x, final int y, final int z )
|
|
{
|
|
final double a = Math.random();
|
|
if( a > SPECIFIED_BLOCK_THRESHOLD )
|
|
{
|
|
this.putter.put( w, x, y, z, this.block, this.meta );
|
|
}
|
|
else
|
|
{
|
|
this.getOther( w, x, y, z, a );
|
|
}
|
|
}
|
|
|
|
public void getOther( final IMeteoriteWorld w, final int x, final int y, final int z, final double a )
|
|
{
|
|
|
|
}
|
|
|
|
@Override
|
|
public void getRandomInset( final IMeteoriteWorld w, final int x, final int y, final int z )
|
|
{
|
|
final double a = Math.random();
|
|
if( a > SPECIFIED_BLOCK_THRESHOLD )
|
|
{
|
|
this.putter.put( w, x, y, z, this.block, this.meta );
|
|
}
|
|
else if( a > AIR_BLOCK_THRESHOLD )
|
|
{
|
|
this.putter.put( w, x, y, z, Platform.AIR_BLOCK );
|
|
}
|
|
else
|
|
{
|
|
this.getOther( w, x, y, z, a - BLOCK_THRESHOLD_STEP );
|
|
}
|
|
}
|
|
} |