A few fixes

This commit is contained in:
Runemoro 2017-12-23 19:06:56 -05:00
parent 00e02bd7ea
commit de53f20420
5 changed files with 7 additions and 30 deletions

View file

@ -34,7 +34,7 @@ compileJava {
minecraft { minecraft {
version = "1.12.2-14.23.1.2555" version = "1.12.2-14.23.1.2555"
runDir = "run" runDir = "run"
mappings = "snapshot_20171216" mappings = "snapshot_20171007"
replace '${version}', project.version replace '${version}', project.version
//replace '${spongeSchematicVersion}', spongeSchematicVersion //replace '${spongeSchematicVersion}', spongeSchematicVersion
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.

View file

@ -53,7 +53,6 @@ public class VirtualLocation { // TODO: use BlockPos/Location
return nbt; return nbt;
} }
// TODO: move to VirtualLocation
public static VirtualLocation fromLocation(Location location) { // TODO: reverse function too public static VirtualLocation fromLocation(Location location) { // TODO: reverse function too
VirtualLocation virtualLocation = null; VirtualLocation virtualLocation = null;
if (DimDoorDimensions.isPocketDimension(location.getDim())) { if (DimDoorDimensions.isPocketDimension(location.getDim())) {

View file

@ -117,32 +117,7 @@ public abstract class BlockDimensionalDoor extends BlockDoor implements IRiftPro
@Override @Override
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
super.onBlockAdded(worldIn, pos, state); super.onBlockAdded(worldIn, pos, state);
if (hasTileEntity(state) && !DimDoors.disableRiftSetup) { // TODO: better check for disableRiftSetup (support other plugins such as WorldEdit, support doors being placed while schematics are being placed) handleRiftPlaced(worldIn, pos, state);
TileEntityEntranceRift rift = createNewTileEntity(worldIn, getMetaFromState(state));
// Set the virtual location based on where the door was placed
VirtualLocation virtualLocation = null;
if (DimDoorDimensions.isPocketDimension(WorldUtils.getDim(worldIn))) {
Pocket pocket = PocketRegistry.getForDim(WorldUtils.getDim(worldIn)).getPocketFromLocation(pos.getY(), pos.getY(), pos.getZ());
if (pocket != null) {
virtualLocation = pocket.getVirtualLocation();
} else {
virtualLocation = new VirtualLocation(0, 0, 0, 0, 0); // TODO: door was placed in a pocket dim but outside of a pocket...
}
}
if (virtualLocation == null) {
virtualLocation = new VirtualLocation(WorldUtils.getDim(worldIn), pos.getX(), pos.getY(), pos.getZ(), 0);
}
rift.setVirtualLocation(virtualLocation);
// Configure the rift to its default functionality
setupRift(rift);
// Set the tile entity and register it
worldIn.setTileEntity(pos, rift);
rift.markDirty();
rift.register();
}
} }
@Override @Override

View file

@ -26,6 +26,7 @@ public class BlockDimensionalDoorPersonal extends BlockDimensionalDoor {
@Override @Override
public void setupRift(TileEntityEntranceRift rift) { public void setupRift(TileEntityEntranceRift rift) {
DimDoors.log.info("Setting up the rift!");
RiftDestination.PrivateDestination destination = RiftDestination.PrivateDestination.builder().build(); RiftDestination.PrivateDestination destination = RiftDestination.PrivateDestination.builder().build();
rift.setSingleDestination(destination); rift.setSingleDestination(destination);
rift.setChaosWeight(0); rift.setChaosWeight(0);

View file

@ -6,8 +6,10 @@ import com.zixiken.dimdoors.shared.rifts.TileEntityRift;
import ddutils.Location; import ddutils.Location;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
public interface IRiftProvider<T extends TileEntityRift> extends ITileEntityProvider { public interface IRiftProvider<T extends TileEntityRift> extends ITileEntityProvider {
@ -21,11 +23,11 @@ public interface IRiftProvider<T extends TileEntityRift> extends ITileEntityProv
public T createNewTileEntity(World world, int meta); public T createNewTileEntity(World world, int meta);
public default void handleRiftPlaced(World world, BlockPos pos, IBlockState state) { public default void handleRiftPlaced(World world, BlockPos pos, IBlockState state) {
if (hasTileEntity(state) && !DimDoors.disableRiftSetup) { // TODO: better check for disableRiftSetup (support other plugins such as WorldEdit, support doors being placed while schematics are being placed) if (hasTileEntity(state) && !DimDoors.disableRiftSetup) {
T rift = createNewTileEntity(world, state.getBlock().getMetaFromState(state)); T rift = createNewTileEntity(world, state.getBlock().getMetaFromState(state));
// Set the rift's virtual position // Set the rift's virtual position
rift.setVirtualLocation(VirtualLocation.fromLocation(new Location(rift.getWorld(), rift.getPos()))); rift.setVirtualLocation(VirtualLocation.fromLocation(new Location(world, pos)));
// Configure the rift to its default functionality // Configure the rift to its default functionality
setupRift(rift); setupRift(rift);