Bug fixes
- Fix crash when monolith spawner is placed - Fix client crash when walking on eternal fabric - Fix ancient fabric being generated in Limbo rather than eternal fabric
This commit is contained in:
parent
90d86f8e03
commit
0533f2007b
8 changed files with 18 additions and 19 deletions
|
@ -25,8 +25,6 @@ repositories {
|
|||
mavenCentral()
|
||||
}
|
||||
|
||||
genIntellijRuns {}
|
||||
|
||||
minecraft {
|
||||
runDir = "run"
|
||||
version = "1.12.2-14.23.1.2555"
|
||||
|
|
|
@ -44,4 +44,4 @@ public class IndentedPrintWriter extends PrintWriter { // TODO: verify indentati
|
|||
super.println();
|
||||
startOfLine = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package org.dimdev.dimdoors.shared;
|
||||
|
||||
import org.dimdev.ddutils.nbt.INBTStorable;
|
||||
import org.dimdev.dimdoors.shared.pockets.Pocket;
|
||||
import org.dimdev.dimdoors.shared.pockets.PocketRegistry;
|
||||
import org.dimdev.ddutils.Location;
|
||||
|
@ -9,14 +8,14 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.ToString;
|
||||
import lombok.Value;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import org.dimdev.dimdoors.shared.world.limbodimension.WorldProviderLimbo;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Value @ToString @AllArgsConstructor @Builder(toBuilder = true)
|
||||
public class VirtualLocation { // TODO: use BlockPos/Location
|
||||
public class VirtualLocation {
|
||||
Location location;
|
||||
int depth;
|
||||
|
||||
|
@ -34,7 +33,7 @@ public class VirtualLocation { // TODO: use BlockPos/Location
|
|||
public int getY() { return location.getY(); }
|
||||
public int getZ() { return location.getZ(); }
|
||||
|
||||
public static VirtualLocation fromLocation(Location location) { // TODO: reverse function too
|
||||
public static VirtualLocation fromLocation(Location location) {
|
||||
VirtualLocation virtualLocation = null;
|
||||
if (DimDoorDimensions.isPocketDimension(location.getDim())) {
|
||||
Pocket pocket = PocketRegistry.getForDim(location.getDim()).getPocketAt(location.getPos());
|
||||
|
@ -43,6 +42,8 @@ public class VirtualLocation { // TODO: use BlockPos/Location
|
|||
} else {
|
||||
virtualLocation = new VirtualLocation(0, 0, 0, 0, 0); // TODO: door was placed in a pocket dim but outside of a pocket...
|
||||
}
|
||||
} else if (location.getWorld().provider instanceof WorldProviderLimbo) {
|
||||
virtualLocation = new VirtualLocation(location, DDConfig.getMaxDungeonDepth());
|
||||
}
|
||||
if (virtualLocation == null) {
|
||||
virtualLocation = new VirtualLocation(location, 0);
|
||||
|
@ -50,7 +51,7 @@ public class VirtualLocation { // TODO: use BlockPos/Location
|
|||
return virtualLocation;
|
||||
}
|
||||
|
||||
// TODO: world-seed based transformations and pocket selections?
|
||||
// TODO: world-seed based transformations and pocket selections
|
||||
public VirtualLocation transformDepth(int depth) { // TODO: Config option for block ratio between depths (see video of removed features)
|
||||
Random random = new Random();
|
||||
int depthDiff = Math.abs(this.depth - depth);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dimdev.dimdoors.shared.entities;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import org.dimdev.dimdoors.shared.sound.ModSounds;
|
||||
import org.dimdev.dimdoors.shared.DDConfig;
|
||||
import org.dimdev.ddutils.Location;
|
||||
|
@ -73,7 +74,7 @@ public class EntityMonolith extends EntityFlying implements IMob {
|
|||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBox() {
|
||||
return null;
|
||||
return Block.NULL_AABB; // TODO: Is this right? Why check if it intersects anything if it is?
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -275,7 +276,7 @@ public class EntityMonolith extends EntityFlying implements IMob {
|
|||
if (list.size() > 0) {
|
||||
return false;
|
||||
}
|
||||
} else if (world.provider instanceof WorldProviderPublicPocket) {
|
||||
} else if (world.provider instanceof WorldProviderPublicPocket) { // TODO
|
||||
if (list.size() > 5 || world.canBlockSeeSky(new BlockPos(posX, posY, posZ))) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ import java.util.*;
|
|||
private static final String DATA_NAME = DimDoors.MODID + "_rifts";
|
||||
@Getter private static final int DATA_VERSION = 0; // IMPORTANT: Update this and upgradeRegistry when making changes.
|
||||
|
||||
@SavedToNBT @Getter /*package-private*/ /*final*/ Map<Location, RiftInfo> rifts = new HashMap<>(); // TODO: store relative locations too (better location class supporting relative, etc)
|
||||
@SavedToNBT @Getter /*package-private*/ /*final*/ Map<Location, RiftInfo> rifts = new HashMap<>(); // TODO: convert to a static directed graph, but store links per-world
|
||||
@SavedToNBT @Getter /*package-private*/ /*final*/ Map<String, Location> privatePocketEntrances = new HashMap<>(); // Player UUID -> last rift used to exit pocket TODO: split into PrivatePocketRiftRegistry subclass
|
||||
@SavedToNBT @Getter /*package-private*/ /*final*/ Map<String, List<Location>> privatePocketEntranceLists = new HashMap<>(); // Player UUID -> private pocket entrances TODO: split into PrivatePocketRiftRegistry subclass
|
||||
@SavedToNBT @Getter /*package-private*/ /*final*/ Map<String, Location> privatePocketExits = new HashMap<>(); // Player UUID -> last rift used to enter pocket
|
||||
|
@ -87,7 +87,7 @@ import java.util.*;
|
|||
}
|
||||
|
||||
public void initNewRegistry() {
|
||||
// TODO
|
||||
// Nothing to do
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -264,7 +264,7 @@ public class LimboGenerator implements IChunkGenerator {
|
|||
ModBlocks.FABRIC.getDefaultState().withProperty(BlockFabric.TYPE, BlockFabric.EnumType.UNRAVELED));
|
||||
} else if (yCoord < 6) {
|
||||
primer.setBlockState(xCoord, yCoord, zCoord,
|
||||
ModBlocks.FABRIC.getDefaultState().withProperty(BlockFabric.TYPE, BlockFabric.EnumType.ANCIENT));
|
||||
ModBlocks.FABRIC.getDefaultState().withProperty(BlockFabric.TYPE, BlockFabric.EnumType.ETERNAL));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,11 +37,9 @@ public class WorldProviderLimbo extends WorldProvider {
|
|||
|
||||
@Override
|
||||
protected void generateLightBrightnessTable() {
|
||||
float modifier = 0.0F;
|
||||
|
||||
for (int steps = 0; steps <= 15; ++steps) {
|
||||
float var3 = 1.0F - steps / 15.0F;
|
||||
lightBrightnessTable[steps] = ((0.0F + var3) / (var3 * 3.0F + 1.0F) * (1.0F - modifier) + modifier) * 3;
|
||||
for (int i = 0; i <= 15; ++i) {
|
||||
float var3 = 1.0F - i / 15.0F;
|
||||
lightBrightnessTable[i] = (0.0F + var3) / (var3 * 3.0F + 1.0F) * 1.0F * 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,10 +21,11 @@ public class WorldProviderPersonalPocket extends WorldProviderPocket {
|
|||
return EnumPocketType.PRIVATE;
|
||||
}
|
||||
|
||||
// TODO: disable this to allow dark places in public pockets
|
||||
@Override
|
||||
protected void generateLightBrightnessTable() {
|
||||
for (int i = 0; i <= 15; ++i) {
|
||||
lightBrightnessTable[i] = 15;
|
||||
lightBrightnessTable[i] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue