Reorganized DimLink Code

Moved the DimLink code out of NewDimData in order to reduce clutter
inside that class and made it a separate class, except for functions
that should only be available for NewDimData. Deleted IDimLink and
changed all references to it to use DimLink instead. DimLink is now an
abstract class, which achieves the same encapsulation and protection we
had before by having DimLink implement IDimLink from within NewDimData.
NewDimData has a new class inside, InnerDimLink, which provides it
access to special functions that would be dangerous to expose. This is
the same mechanism used to protect NewDimData's dangerous functions.
These changes are in preparation for adding more code for packet
handling.
This commit is contained in:
SenseiKiwi
2013-09-02 11:47:12 -04:00
parent 0bd7ef9593
commit 56ecb0cd9e
20 changed files with 206 additions and 192 deletions

View File

@@ -9,7 +9,8 @@ import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.common.DimensionManager;
import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.core.IDimLink;
import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.core.LinkTypes;
import StevenDimDoors.mod_pocketDim.core.NewDimData;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.items.ItemDimensionalDoor;
@@ -57,7 +58,7 @@ public class GatewayGenerator implements IWorldGenerator
int attempts;
int correction;
boolean valid;
IDimLink link;
DimLink link;
NewDimData dimension;
//Check if we're generating things in the Nether
@@ -97,7 +98,7 @@ public class GatewayGenerator implements IWorldGenerator
if (link == null)
{
dimension = PocketManager.getDimensionData(world);
link = dimension.createLink(x, y + 1, z, IDimLink.TYPE_POCKET);
link = dimension.createLink(x, y + 1, z, LinkTypes.POCKET);
}
else
{
@@ -132,7 +133,7 @@ public class GatewayGenerator implements IWorldGenerator
{
//Create a partial link to a dungeon.
dimension = PocketManager.getDimensionData(world);
link = dimension.createLink(x, y + 1, z, IDimLink.TYPE_DUNGEON);
link = dimension.createLink(x, y + 1, z, LinkTypes.DUNGEON);
//If the current dimension isn't Limbo, build a Rift Gateway out of Stone Bricks
if (dimension.id() != properties.LimboDimensionID)

View File

@@ -10,7 +10,7 @@ import net.minecraft.world.chunk.storage.ExtendedBlockStorage;
import net.minecraftforge.common.DimensionManager;
import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.Point3D;
import StevenDimDoors.mod_pocketDim.core.IDimLink;
import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.core.NewDimData;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.dungeon.DungeonData;
@@ -36,7 +36,7 @@ public class PocketBuilder
private PocketBuilder() { }
public static boolean generateNewDungeonPocket(IDimLink link, DDProperties properties)
public static boolean generateNewDungeonPocket(DimLink link, DDProperties properties)
{
if (link == null)
{
@@ -214,7 +214,7 @@ public class PocketBuilder
schematic.getLength() <= DungeonHelper.MAX_DUNGEON_LENGTH);
}
public static boolean generateNewPocket(IDimLink link, DDProperties properties)
public static boolean generateNewPocket(DimLink link, DDProperties properties)
{
return generateNewPocket(link, DEFAULT_POCKET_SIZE, DEFAULT_POCKET_WALL_THICKNESS, properties);
}
@@ -240,7 +240,7 @@ public class PocketBuilder
return orientation;
}
public static boolean generateNewPocket(IDimLink link, int size, int wallThickness, DDProperties properties)
public static boolean generateNewPocket(DimLink link, int size, int wallThickness, DDProperties properties)
{
if (link == null)
{