World draft 1 complete
This commit is contained in:
parent
6eacd2d62f
commit
e75d282b24
16 changed files with 350 additions and 90 deletions
|
@ -11,11 +11,15 @@ import com.zixiken.dimdoors.tileentities.TileEntityTransTrapdoor;
|
|||
import com.zixiken.dimdoors.world.DimDoorDimensions;
|
||||
import net.minecraft.block.BlockDoor;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLServerStartedEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
|
||||
public abstract class DDProxyCommon implements IDDProxy {
|
||||
|
|
|
@ -53,6 +53,7 @@ public class DimDoors {
|
|||
|
||||
@Mod.EventHandler
|
||||
public void serverLoad(FMLServerStartingEvent event) {
|
||||
event.registerServerCommand(new TeleportCommand());
|
||||
//@todo event.registerServerCommand( new DDCommand() ); //to register commands that this mod offers?
|
||||
RiftRegistry.Instance.reset();
|
||||
PocketSavedData.get(getDefWorld());
|
||||
|
|
59
src/main/java/com/zixiken/dimdoors/TeleportCommand.java
Normal file
59
src/main/java/com/zixiken/dimdoors/TeleportCommand.java
Normal file
|
@ -0,0 +1,59 @@
|
|||
package com.zixiken.dimdoors;
|
||||
|
||||
import com.zixiken.dimdoors.shared.Location;
|
||||
import com.zixiken.dimdoors.shared.TeleportHelper;
|
||||
import net.minecraft.command.CommandBase;
|
||||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommand;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.Teleporter;
|
||||
import net.minecraft.world.World;
|
||||
import scala.Int;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Jared Johnson on 1/26/2017.
|
||||
*/
|
||||
public class TeleportCommand extends CommandBase {
|
||||
private final List aliases;
|
||||
|
||||
public TeleportCommand()
|
||||
{
|
||||
aliases = new ArrayList();
|
||||
|
||||
aliases.add("dimteleport");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "dimteleport";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(ICommandSender sender) {
|
||||
return "dimteleport <dimension>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAliases() {
|
||||
return aliases;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||
int id = Integer.parseInt(args[0]);
|
||||
|
||||
if (sender instanceof EntityPlayerMP) {
|
||||
server.getPlayerList().transferPlayerToDimension((EntityPlayerMP) sender, Integer.parseInt(args[0]), new TeleportHelper(new Location(id, 0,300,0)));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
32
src/main/java/com/zixiken/dimdoors/blocks/BlockLimbo.java
Normal file
32
src/main/java/com/zixiken/dimdoors/blocks/BlockLimbo.java
Normal file
|
@ -0,0 +1,32 @@
|
|||
package com.zixiken.dimdoors.blocks;
|
||||
|
||||
import com.zixiken.dimdoors.world.limbo.LimboDecay;
|
||||
import com.zixiken.dimdoors.world.limbo.WorldProviderLimbo;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.MapColor;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockLimbo extends Block {
|
||||
public static final String ID = "blockLimbo";
|
||||
|
||||
public BlockLimbo() {
|
||||
super(Material.GROUND, MapColor.BLACK);
|
||||
setUnlocalizedName(ID);
|
||||
setRegistryName(ID);
|
||||
|
||||
setTickRandomly(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, BlockPos pos, IBlockState state, Random random) {
|
||||
//Make sure this block is in Limbo
|
||||
if (world.provider instanceof WorldProviderLimbo) {
|
||||
LimboDecay.applySpreadDecay(world, pos);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -147,15 +147,14 @@ public class BlockRift extends Block implements ITileEntityProvider {
|
|||
x + .5, y + .5, z + .5,
|
||||
rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D));
|
||||
*/
|
||||
if (tile.shouldClose) //renders an opposite color effect if it is being closed by the rift remover
|
||||
{
|
||||
if (tile.shouldClose) //renders an opposite color effect if it is being closed by the rift remover{
|
||||
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new ClosingRiftFX(
|
||||
worldIn,
|
||||
x + .5, y + .5, z + .5,
|
||||
rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean tryPlacingRift(World world, BlockPos pos) {
|
||||
return world != null && !isBlockImmune(world, pos)
|
||||
&& world.setBlockState(pos, getDefaultState()); //@todo This returns false, because this block does not have blockstates configured correctly. !isBlockImmune doesn't seem to be true either though...
|
||||
|
|
|
@ -15,6 +15,7 @@ public class ModBlocks {
|
|||
public static BlockTransTrapdoor blockDimHatch;
|
||||
public static BlockDimWall blockDimWall;
|
||||
public static BlockRift blockRift;
|
||||
public static BlockLimbo blockLimbo;
|
||||
|
||||
public static void registerBlocks() {
|
||||
GameRegistry.register(blockDoorQuartz = new BlockDoorQuartz());
|
||||
|
@ -28,5 +29,6 @@ public class ModBlocks {
|
|||
GameRegistry.register(blockDimWall = new BlockDimWall());
|
||||
GameRegistry.register(blockDimDoorTransient = new BlockDimDoorTransient());
|
||||
GameRegistry.register(blockRift = new BlockRift());
|
||||
GameRegistry.register(blockLimbo = new BlockLimbo());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,10 +26,6 @@ public class TeleportHelper extends Teleporter {
|
|||
entityIn.setPositionAndUpdate(pos.getX() + .5, pos.getY() + .05, pos.getZ() + .5);
|
||||
}
|
||||
|
||||
public IBlockState toBlockState(String id) {
|
||||
String[] list = id.split("[");
|
||||
}
|
||||
|
||||
public static boolean teleport(Entity entity, Location newLocation) {
|
||||
if (DimDoors.isClient()) {
|
||||
//DimDoors.log(TeleportHelper.class, "Not teleporting, because EntityPlayerSP.");
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
package com.zixiken.dimdoors.world;
|
||||
|
||||
import com.zixiken.dimdoors.world.limbo.WorldProviderLimbo;
|
||||
import com.zixiken.dimdoors.world.personalpocket.WorldProviderPersonalPocket;
|
||||
import com.zixiken.dimdoors.world.pocket.WorldProviderPocket;
|
||||
import com.zixiken.dimdoors.world.pocket.WorldProviderPublicPocket;
|
||||
import net.minecraft.world.DimensionType;
|
||||
import net.minecraftforge.common.DimensionManager;
|
||||
|
||||
public class DimDoorDimensions {
|
||||
public static DimensionType LIMBO;
|
||||
public static DimensionType POCKET;
|
||||
public static DimensionType DUNGEON;
|
||||
public static DimensionType PRIVATE;
|
||||
public static DimensionType PUBLIC;
|
||||
|
||||
public static void init() {
|
||||
LIMBO = DimensionType.register("Limbo", "_limbo", DimensionManager.getNextFreeDimId(), WorldProviderPocket.class, false);
|
||||
POCKET = DimensionType.register("Pocket", "_pocket", DimensionManager.getNextFreeDimId(), WorldProviderLimbo.class, false);
|
||||
LIMBO = DimensionType.register("Limbo", "_limbo", 2, WorldProviderLimbo.class, false);
|
||||
PRIVATE = DimensionType.register("Private", "_private", 3, WorldProviderPersonalPocket.class, false); //TODO: Figure out how to consiently get proper dimension ids
|
||||
DUNGEON = DimensionType.register("Dungeon", "_dungeon", 4, WorldProviderPocket.class, false);
|
||||
PUBLIC = DimensionType.register("Public", "_public", 5, WorldProviderPublicPocket.class, false);
|
||||
|
||||
registerDimension(LIMBO);
|
||||
registerDimension(POCKET);
|
||||
registerDimension(PRIVATE);
|
||||
registerDimension(DUNGEON);
|
||||
registerDimension(PUBLIC);
|
||||
}
|
||||
|
||||
public static void registerDimension(DimensionType dimension) {
|
||||
|
|
|
@ -2,9 +2,6 @@ package com.zixiken.dimdoors.world.limbo;
|
|||
|
||||
import com.zixiken.dimdoors.world.biomes.DimDoorsBiome;
|
||||
|
||||
/**
|
||||
* Created by Jared Johnson on 1/24/2017.
|
||||
*/
|
||||
public class LimboBiome extends DimDoorsBiome {
|
||||
public LimboBiome() {
|
||||
super("limbo");
|
||||
|
|
|
@ -34,7 +34,7 @@ public class LimboDecay {
|
|||
public static IBlockState[] getDecaySequence() {
|
||||
if (decaySequence == null) {
|
||||
decaySequence = new IBlockState[] {
|
||||
mod_pocketDim.blockLimbo,
|
||||
ModBlocks.blockLimbo.getDefaultState(),
|
||||
Blocks.GRAVEL.getDefaultState(),
|
||||
Blocks.COBBLESTONE.getDefaultState(),
|
||||
Blocks.STONE.getDefaultState()
|
||||
|
@ -47,16 +47,16 @@ public class LimboDecay {
|
|||
public static IBlockState[] getBlocksImmuneToDecay() {
|
||||
if (blocksImmuneToDecay == null) {
|
||||
blocksImmuneToDecay = new IBlockState[] {
|
||||
mod_pocketDim.blockLimbo,
|
||||
ModBlocks.blockLimbo.getDefaultState(),
|
||||
ModBlocks.blockDimWall.getDefaultState().withProperty(BlockDimWall.TYPE, BlockDimWall.EnumType.ANCIENT),
|
||||
ModBlocks.blockDimDoorTransient.getDefaultState(),
|
||||
ModBlocks.blockDimDoor.getDefaultState(),
|
||||
ModBlocks.blockDimDoorWarp.getDefaultState(),
|
||||
ModBlocks.blockRift.getDefaultState(),
|
||||
ModBlocks.blockDimDoorChaos.getDefaultState(),
|
||||
ModBlocks.blockDoorGold,
|
||||
ModBlocks.blockDoorQuartz,
|
||||
ModBlocks.blockDimDoorGold
|
||||
ModBlocks.blockDoorGold.getDefaultState(),
|
||||
ModBlocks.blockDoorQuartz.getDefaultState(),
|
||||
ModBlocks.blockDimDoorGold.getDefaultState()
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -67,8 +67,7 @@ public class LimboDecay {
|
|||
* Checks the blocks orthogonally around a given location (presumably the location of an Unraveled Fabric block)
|
||||
* and applies Limbo decay to them. This gives the impression that decay spreads outward from Unraveled Fabric.
|
||||
*/
|
||||
public void applySpreadDecay(World world, BlockPos pos)
|
||||
{
|
||||
public static void applySpreadDecay(World world, BlockPos pos) {
|
||||
//Check if we randomly apply decay spread or not. This can be used to moderate the frequency of
|
||||
//full spread decay checks, which can also shift its performance impact on the game.
|
||||
if (random.nextInt(MAX_DECAY_SPREAD_CHANCE) < DECAY_SPREAD_CHANCE) {
|
||||
|
@ -87,7 +86,7 @@ public class LimboDecay {
|
|||
* Picks random blocks from each active chunk in Limbo and, if decay is applicable, converts them directly to Unraveled Fabric.
|
||||
* This decay method is designed to stop players from avoiding Limbo decay by building floating structures.
|
||||
*/
|
||||
public void applyRandomFastDecay()
|
||||
public static void applyRandomFastDecay()
|
||||
{
|
||||
int x, y, z;
|
||||
int sectionY;
|
||||
|
@ -118,10 +117,10 @@ public class LimboDecay {
|
|||
/**
|
||||
* Checks if a block can be decayed and, if so, changes it directly into Unraveled Fabric.
|
||||
*/
|
||||
private boolean decayBlockFast(World world, BlockPos pos) {
|
||||
private static boolean decayBlockFast(World world, BlockPos pos) {
|
||||
IBlockState block = world.getBlockState(pos);
|
||||
if (canDecayBlock(block, world, pos)) {
|
||||
world.setBlockState(pos, mod_pocketDim.blockLimbo);
|
||||
world.setBlockState(pos, ModBlocks.blockLimbo.getDefaultState());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -130,7 +129,7 @@ public class LimboDecay {
|
|||
/**
|
||||
* Checks if a block can be decayed and, if so, changes it to the next block ID along the decay sequence.
|
||||
*/
|
||||
private boolean decayBlock(World world, BlockPos pos) {
|
||||
private static boolean decayBlock(World world, BlockPos pos) {
|
||||
int index;
|
||||
IBlockState block = world.getBlockState(pos);
|
||||
if (canDecayBlock(block, world, pos)) {
|
||||
|
@ -157,7 +156,7 @@ public class LimboDecay {
|
|||
/**
|
||||
* Checks if a block can decay. We will not decay air, certain DD blocks, or containers.
|
||||
*/
|
||||
private boolean canDecayBlock(IBlockState block, World world, BlockPos pos) {
|
||||
private static boolean canDecayBlock(IBlockState block, World world, BlockPos pos) {
|
||||
if (world.isAirBlock(pos )) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.zixiken.dimdoors.world.limbo;
|
||||
|
||||
import com.zixiken.dimdoors.blocks.BlockDimWall;
|
||||
import com.zixiken.dimdoors.blocks.ModBlocks;
|
||||
import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.init.Biomes;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -14,6 +17,7 @@ import net.minecraft.world.gen.structure.MapGenScatteredFeature;
|
|||
import net.minecraftforge.common.BiomeManager;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -51,7 +55,7 @@ public class LimboGenerator implements IChunkGenerator
|
|||
private MapGenScatteredFeature scatteredFeatureGenerator = new MapGenScatteredFeature();
|
||||
|
||||
/** The biomes that are used to generate the chunk */
|
||||
private Biome[] biomesForGeneration = new Biome[1];
|
||||
private Biome[] biomesForGeneration = { new LimboBiome() };
|
||||
|
||||
/** A double array that hold terrain noise from noiseGen3 */
|
||||
double[] noise3;
|
||||
|
@ -78,9 +82,8 @@ public class LimboGenerator implements IChunkGenerator
|
|||
}
|
||||
//private CustomLimboPopulator spawner;
|
||||
|
||||
public LimboGenerator(World world, long seed, /*CustomLimboPopulator spawner*/) {
|
||||
public LimboGenerator(World world, long seed /*CustomLimboPopulator spawner*/) {
|
||||
this.worldObj = world;
|
||||
BiomeManager
|
||||
LimboGenerator.rand = new Random(seed);
|
||||
this.noiseGen1 = new NoiseGeneratorOctaves(LimboGenerator.rand, 16); //base terrain
|
||||
this.noiseGen2 = new NoiseGeneratorOctaves(LimboGenerator.rand, 16); //hillyness
|
||||
|
@ -102,7 +105,7 @@ public class LimboGenerator implements IChunkGenerator
|
|||
|
||||
this.worldObj = world;
|
||||
|
||||
this.spawner = spawner;
|
||||
//this.spawner = spawner;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -111,7 +114,7 @@ public class LimboGenerator implements IChunkGenerator
|
|||
//TODO: Wtf? Why do you reinitialize the seed when we already initialized it in the constructor?! ~SenseiKiwi
|
||||
LimboGenerator.rand.setSeed(chunkX * 341873128712L + chunkZ * 132897987541L);
|
||||
ChunkPrimer primer = new ChunkPrimer();
|
||||
this.setBlocksInChunk(chunkX, chunkZ, primer);
|
||||
this.scale(chunkX, chunkZ, primer);
|
||||
Chunk chunk = new Chunk(this.worldObj, primer, chunkX, chunkZ);
|
||||
chunk.generateSkylightMap();
|
||||
|
||||
|
@ -255,62 +258,70 @@ public class LimboGenerator implements IChunkGenerator
|
|||
return par1ArrayOfDouble;
|
||||
}
|
||||
|
||||
public void setBlocksInChunk(int x, int z, ChunkPrimer blocks) {
|
||||
byte var4 = 4;
|
||||
byte var5 = 16;
|
||||
byte var6 = 19;
|
||||
int var7 = var4 + 1;
|
||||
byte var8 = 17;
|
||||
int var9 = var4 + 1;
|
||||
this.biomesForGeneration = this.worldObj.getBiomeProvider().getBiomes(this.biomesForGeneration, x * 4 - 2, z * 4 - 2, var7 + 5, var9 + 5);
|
||||
this.noiseArray = this.initializeNoiseField(this.noiseArray, x * var4, 0, z * var4, var7, var8, var9);
|
||||
public void scale(int x, int z, ChunkPrimer primer) { //Coursty of
|
||||
// TODO: this:
|
||||
this.biomesForGeneration = this.worldObj.getBiomeProvider().getBiomesForGeneration(this.biomesForGeneration, x * 4 - 2, z * 4 - 2, 10, 10);
|
||||
this.noiseArray = this.initializeNoiseField(this.noiseArray, x * 4, 0, z * 4, 5, 17, 5);
|
||||
|
||||
for (int var10 = 0; var10 < var4; ++var10) {
|
||||
for (int var11 = 0; var11 < var4; ++var11) {
|
||||
for (int var12 = 0; var12 < var5; ++var12) {
|
||||
double var13 = 0.125D;
|
||||
double var15 = this.noiseArray[((((var10) * var9) + var11) * var8) + var12];
|
||||
double var17 = this.noiseArray[((var10) * var9 + var11 + 1) * var8 + var12];
|
||||
double var19 = this.noiseArray[((var10 + 1) * var9 + var11) * var8 + var12];
|
||||
double var21 = this.noiseArray[((var10 + 1) * var9 + var11 + 1) * var8 + var12];
|
||||
double var23 = (this.noiseArray[((var10) * var9 + var11) * var8 + var12 + 1] - var15) * var13;
|
||||
double var25 = (this.noiseArray[((var10) * var9 + var11 + 1) * var8 + var12 + 1] - var17) * var13;
|
||||
double var27 = (this.noiseArray[((var10 + 1) * var9 + var11) * var8 + var12 + 1] - var19) * var13;
|
||||
double var29 = (this.noiseArray[((var10 + 1) * var9 + var11 + 1) * var8 + var12 + 1] - var21) * var13;
|
||||
int xzSections = 4;
|
||||
int xzSectionSize = 4;
|
||||
int ySections = 16;
|
||||
int ySectionSize = 8;
|
||||
|
||||
for (int var31 = 0; var31 < 8; ++var31) {
|
||||
double var32 = 0.25D;
|
||||
double var34 = var15;
|
||||
double var36 = var17;
|
||||
double var38 = (var19 - var15) * var32;
|
||||
double var40 = (var21 - var17) * var32;
|
||||
double xzScale = 1.0 / xzSectionSize;
|
||||
double yScale = 1.0 / ySectionSize;
|
||||
for (int sectionX = 0; sectionX < xzSections; ++sectionX) {
|
||||
int xSectionPart = sectionX * xzSectionSize;
|
||||
int i0__ = sectionX * (xzSections + 1);
|
||||
int i1__ = (sectionX + 1) * (xzSections + 1);
|
||||
|
||||
for (int var42 = 0; var42 < 4; ++var42) {
|
||||
int var43 = var42 + var10 * 4 << 11 | 0 + var11 * 4 << 7 | var12 * 8 + var31;
|
||||
short var44 = 128;
|
||||
var43 -= var44;
|
||||
double var45 = 0.25D;
|
||||
double var49 = (var36 - var34) * var45;
|
||||
double var47 = var34 - var49;
|
||||
for (int sectionZ = 0; sectionZ < xzSections; ++sectionZ) {
|
||||
int zSectionPart = sectionZ * xzSectionSize;
|
||||
int i0_0 = (i0__ + sectionZ) * (ySections + 1);
|
||||
int i0_1 = (i0__ + sectionZ + 1) * (ySections + 1);
|
||||
int i1_0 = (i1__ + sectionZ) * (ySections + 1);
|
||||
int i1_1 = (i1__ + sectionZ + 1) * (ySections + 1);
|
||||
|
||||
for (int var51 = 0; var51 < 4; ++var51) {
|
||||
if ((var47 += var49) > 0.0D) {
|
||||
blocks[var43 += var44] = mod_pocketDim.blockLimbo;
|
||||
} else if (var12 * 8 + var31 < var6) {
|
||||
blocks[var43 += var44] = mod_pocketDim.blockDimWallPerm;
|
||||
} else {
|
||||
blocks[var43 += var44] = Blocks.air;
|
||||
for (int sectionY = 0; sectionY < ySections; ++sectionY) {
|
||||
int ySectionPart = sectionY * ySectionSize;
|
||||
double v0y0 = this.noiseArray[i0_0 + sectionY];
|
||||
double v0y1 = this.noiseArray[i0_1 + sectionY];
|
||||
double v1y0 = this.noiseArray[i1_0 + sectionY];
|
||||
double v1y1 = this.noiseArray[i1_1 + sectionY];
|
||||
double d0y0 = (this.noiseArray[i0_0 + sectionY + 1] - v0y0) * yScale;
|
||||
double d0y1 = (this.noiseArray[i0_1 + sectionY + 1] - v0y1) * yScale;
|
||||
double d1y0 = (this.noiseArray[i1_0 + sectionY + 1] - v1y0) * yScale;
|
||||
double d1y1 = (this.noiseArray[i1_1 + sectionY + 1] - v1y1) * yScale;
|
||||
|
||||
for (int yRel = 0; yRel < ySectionSize; ++yRel) {
|
||||
int yCoord = ySectionPart + yRel;
|
||||
double vxy0 = v0y0;
|
||||
double vxy1 = v0y1;
|
||||
double dxy0 = (v1y0 - v0y0) * xzScale;
|
||||
double dxy1 = (v1y1 - v0y1) * xzScale;
|
||||
|
||||
for (int xRel = 0; xRel < xzSectionSize; ++xRel) {
|
||||
int xCoord = xSectionPart + xRel;
|
||||
double dxyz = (vxy1 - vxy0) * xzScale;
|
||||
double vxyz = vxy0 - dxyz;
|
||||
|
||||
for (int zRel = 0; zRel < xzSectionSize; ++zRel) {
|
||||
int zCoord = zSectionPart + zRel;
|
||||
if(vxyz > 0) {
|
||||
primer.setBlockState(xCoord, yCoord, zCoord, ModBlocks.blockLimbo.getDefaultState());
|
||||
} else if(yCoord < 6) {
|
||||
primer.setBlockState(xCoord, yCoord, zCoord, ModBlocks.blockDimWall.getDefaultState().withProperty(BlockDimWall.TYPE, BlockDimWall.EnumType.ANCIENT));
|
||||
}
|
||||
}
|
||||
|
||||
var34 += var38;
|
||||
var36 += var40;
|
||||
vxy0 += dxy0;
|
||||
vxy1 += dxy1;
|
||||
}
|
||||
|
||||
var15 += var23;
|
||||
var17 += var25;
|
||||
var19 += var27;
|
||||
var21 += var29;
|
||||
v0y0 += d0y0;
|
||||
v0y1 += d0y1;
|
||||
v1y0 += d1y0;
|
||||
v1y1 += d1y1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -319,9 +330,7 @@ public class LimboGenerator implements IChunkGenerator
|
|||
|
||||
@Override
|
||||
public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType par1EnumCreatureType, BlockPos pos) {
|
||||
|
||||
Biome biomegenbase = this.worldObj.getBiomeForCoordsBody(pos);
|
||||
return biomegenbase == Biomes.SWAMPLAND && par1EnumCreatureType == EnumCreatureType.MONSTER && this.scatteredFeatureGenerator.isInsideStructure(pos) ? this.scatteredFeatureGenerator.getScatteredFeatureSpawnList() : biomegenbase.getSpawnableList(par1EnumCreatureType);
|
||||
return new ArrayList<Biome.SpawnListEntry>();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.zixiken.dimdoors.world.limbo;
|
||||
|
||||
import com.zixiken.dimdoors.blocks.ModBlocks;
|
||||
import com.zixiken.dimdoors.client.CloudRenderBlank;
|
||||
import com.zixiken.dimdoors.shared.Location;
|
||||
import com.zixiken.dimdoors.world.DimDoorDimensions;
|
||||
|
@ -20,7 +21,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
|||
|
||||
public class WorldProviderLimbo extends WorldProvider {
|
||||
private IRenderHandler skyRenderer;
|
||||
private CustomLimboPopulator spawner;
|
||||
//private CustomLimboPopulator spawner;
|
||||
|
||||
public WorldProviderLimbo() {
|
||||
this.hasNoSky = false;
|
||||
|
@ -82,16 +83,15 @@ public class WorldProviderLimbo extends WorldProvider {
|
|||
return 4;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return (getDimension() == 0 ? null : "dimdoors/limbo" + getDimension());
|
||||
return (getDimension() == 0 ? null : "limbo" + getDimension());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCoordinateBeSpawn(int x, int z) {
|
||||
BlockPos pos = this.world.getTopSolidOrLiquidBlock(new BlockPos(x, 0, z));
|
||||
return world.getBlockState(pos).equals(mod_pocketDim.blockLimbo);
|
||||
return world.getBlockState(pos).equals(ModBlocks.blockLimbo.getDefaultState());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -140,7 +140,6 @@ public class WorldProviderLimbo extends WorldProvider {
|
|||
int z = MathHelper.clamp(this.world.rand.nextInt(), -500, 500);
|
||||
return new BlockPos(x, 700, z);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionType getDimensionType() {
|
||||
|
|
|
@ -1,7 +1,60 @@
|
|||
package com.zixiken.dimdoors.world.personalpocket;
|
||||
|
||||
import com.zixiken.dimdoors.client.CloudRenderBlank;
|
||||
import com.zixiken.dimdoors.world.DimDoorDimensions;
|
||||
import com.zixiken.dimdoors.world.pocket.WorldProviderPocket;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.DimensionType;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
/**
|
||||
* Created by Jared Johnson on 1/24/2017.
|
||||
*/
|
||||
public class WorldProviderPersonalPocket {
|
||||
public class WorldProviderPersonalPocket extends WorldProviderPocket {
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3d getSkyColor(Entity cameraEntity, float partialTicks)
|
||||
{
|
||||
setCloudRenderer(new CloudRenderBlank());
|
||||
return new Vec3d(1,1,1);
|
||||
}
|
||||
|
||||
public boolean isSurfaceWorld() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generateLightBrightnessTable() {
|
||||
for (int i = 0; i <= 15; ++i) {
|
||||
this.lightBrightnessTable[i] = (15);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHorizon() {
|
||||
return world.getHeight()-256;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3d getFogColor(float par1, float par2) {
|
||||
return new Vec3d(1,1,1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getActualHeight() {
|
||||
return -256;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return (getDimension() == 0 ? null : "personal");
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionType getDimensionType() {
|
||||
return DimDoorDimensions.PRIVATE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.zixiken.dimdoors.world;
|
||||
package com.zixiken.dimdoors.world.pocket;
|
||||
|
||||
import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -9,6 +9,7 @@ import net.minecraft.world.chunk.ChunkPrimer;
|
|||
import net.minecraft.world.chunk.IChunkGenerator;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PocketGenerator implements IChunkGenerator {
|
||||
|
@ -46,7 +47,7 @@ public class PocketGenerator implements IChunkGenerator {
|
|||
|
||||
@Override
|
||||
public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) {
|
||||
return null;
|
||||
return new ArrayList<Biome.SpawnListEntry>();
|
||||
}
|
||||
|
||||
@Nullable
|
|
@ -1,12 +1,97 @@
|
|||
package com.zixiken.dimdoors.world.pocket;
|
||||
|
||||
import com.zixiken.dimdoors.client.CloudRenderBlank;
|
||||
import com.zixiken.dimdoors.world.DimDoorDimensions;
|
||||
import net.minecraft.client.renderer.Vector3d;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.DimensionType;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
import net.minecraft.world.chunk.IChunkGenerator;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
import net.minecraftforge.client.IRenderHandler;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
public class WorldProviderPocket extends WorldProvider {
|
||||
//protected CustomLimboPopulator spawner;
|
||||
protected IRenderHandler skyRenderer;
|
||||
|
||||
public WorldProviderPocket() {
|
||||
this.hasNoSky = true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return (getDimension() == 0 ? null : "private");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3d getSkyColor(Entity cameraEntity, float partialTicks) {
|
||||
setCloudRenderer( new CloudRenderBlank());
|
||||
return Vec3d.ZERO;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3d getFogColor(float par1, float par2) {
|
||||
return Vec3d.ZERO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHorizon() {
|
||||
return world.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IChunkGenerator createChunkGenerator() {
|
||||
return new PocketGenerator(world, 0); //, spawner);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSnowAt(BlockPos pos, boolean light) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBlockFreeze(BlockPos pos, boolean byWater) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public float calculateCelestialAngle(long par1, float par3) {
|
||||
return .5F;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generateLightBrightnessTable() {
|
||||
for (int steps = 0; steps <= 15; ++steps) {
|
||||
float var3 = (float) (Math.pow(steps,1.5) / Math.pow(15.0F,1.5));
|
||||
this.lightBrightnessTable[15-steps] = var3;
|
||||
System.out.println( this.lightBrightnessTable[steps]+"light");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRespawnDimension(EntityPlayerMP player) {
|
||||
return getDimension();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRespawnHere() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getActualHeight() {
|
||||
return 256;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionType getDimensionType() {
|
||||
return DimDoorDimensions.POCKET;
|
||||
return DimDoorDimensions.DUNGEON;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package com.zixiken.dimdoors.world.pocket;
|
||||
|
||||
import com.zixiken.dimdoors.world.DimDoorDimensions;
|
||||
import net.minecraft.world.DimensionType;
|
||||
|
||||
public class WorldProviderPublicPocket extends WorldProviderPocket {
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return (getDimension() == 0 ? null : "public");
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionType getDimensionType() {
|
||||
return DimDoorDimensions.PUBLIC;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue