Spatial Sky Renderer fixed
Changed Tooltips for Spatial Cells Updated forge + mcp
This commit is contained in:
@@ -22,33 +22,44 @@ package appeng.spatial;
|
||||
import appeng.api.storage.ISpatialDimension;
|
||||
import appeng.core.AELog;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.localization.GuiText;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.dimension.DimensionType;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.common.DimensionManager;
|
||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class SpatialDimensionManager implements ISpatialDimension
|
||||
|
||||
public final class SpatialDimensionManager implements ISpatialDimension
|
||||
{
|
||||
|
||||
public static final ISpatialDimension INSTANCE = new SpatialDimensionManager();
|
||||
|
||||
private static final String DIM_ID_PREFIX = "spatial_";
|
||||
|
||||
private SpatialDimensionManager() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServerWorld getWorld(DimensionType cellDim) {
|
||||
return DimensionManager.getWorld(getServer(), cellDim, true, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionType createNewCellDimension(BlockPos contentSize)
|
||||
public DimensionType createNewCellDimension(BlockPos size)
|
||||
{
|
||||
ResourceLocation dimKey = findFreeDimensionId();
|
||||
AELog.info("Allocating storage cell dimension '%s' for %d", dimKey);
|
||||
AELog.info("Allocating storage cell dimension '%s'", dimKey);
|
||||
|
||||
PacketBuffer extraData = SpatialDimensionExtraData.create(contentSize);
|
||||
PacketBuffer extraData = new SpatialDimensionExtraData(size).write();
|
||||
|
||||
return DimensionManager.registerDimension(dimKey, StorageCellModDimension.INSTANCE, extraData, true);
|
||||
}
|
||||
@@ -114,13 +125,48 @@ public class SpatialDimensionManager implements ISpatialDimension
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getCellContentSize( DimensionType cellDim )
|
||||
public BlockPos getCellDimensionSize(DimensionType cellDim )
|
||||
{
|
||||
if (!(cellDim.getModType() instanceof StorageCellModDimension)) {
|
||||
return BlockPos.ZERO;
|
||||
SpatialDimensionExtraData extraData = getExtraData(cellDim);
|
||||
return extraData != null ? extraData.getSize() : BlockPos.ZERO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCellDimensionTooltip(DimensionType cellDim, List<ITextComponent> lines) {
|
||||
// Check if the cell dimension type is even registered
|
||||
ResourceLocation registryName = cellDim.getRegistryName();
|
||||
if (registryName == null || !AppEng.MOD_ID.equals(registryName.getNamespace())) {
|
||||
return;
|
||||
}
|
||||
|
||||
return SpatialDimensionExtraData.getContentSize(cellDim.getData());
|
||||
if (!registryName.getPath().startsWith(DIM_ID_PREFIX)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add the actual stored size
|
||||
BlockPos size = SpatialDimensionManager.INSTANCE.getCellDimensionSize(cellDim);
|
||||
lines.add( GuiText.StoredSize.textComponent(size.getX(), size.getY(), size.getZ()));
|
||||
|
||||
// Add a serial number to allows players to keep different cells apart
|
||||
int dimId;
|
||||
try {
|
||||
String numericIdPart = registryName.getPath().substring(DIM_ID_PREFIX.length());
|
||||
dimId = Integer.parseUnsignedInt(numericIdPart);
|
||||
} catch (NumberFormatException ignored) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Try to make this a little more flavorful.
|
||||
String serialNumber = String.format(Locale.ROOT, "SP-%04d", dimId);
|
||||
lines.add(GuiText.SerialNumber.textComponent(serialNumber));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private SpatialDimensionExtraData getExtraData( DimensionType cellDim) {
|
||||
if (!(cellDim.getModType() instanceof StorageCellModDimension)) {
|
||||
return null;
|
||||
}
|
||||
return SpatialDimensionExtraData.read(cellDim.getData());
|
||||
}
|
||||
|
||||
private static MinecraftServer getServer() {
|
||||
|
||||
Reference in New Issue
Block a user