Spatial rework (#3048)

* Moved all spatial cells into a single dimension instead of one dimension per cell

Each cell will now be backed by a single region file each. So  backups and restores can still be done on a per cell level.

Old cells will not be migrated.

* Moved custom cell tracking to a capability based one on the world

The size and owner of a cell is now stored inside the capabilities of the world/dimension not a custom system and we can rely on forge handling the persistence of it.

* Added the cell id to the actual item tooltip, as this is now a real identifier and not an arbitrary dimension id.

* Added vanilla banners to the whitelist

* Added unittests to the dimension manager to ensure the algorithm mapping to the correct region file

* Updated the API to conform with the new dimenion/types/biomes registration and mappings

* Fixed a couple of bugs related to world/dimension/biome registration 

* Fixed a bug when transfering certain blocks due to passing missing/incorrect blockstate
This commit is contained in:
fscan
2017-08-24 11:24:33 +02:00
committed by yueh
parent 1513ba3f6a
commit bbf4d4a9ce
21 changed files with 615 additions and 427 deletions
+13 -13
View File
@@ -95,8 +95,8 @@ public final class AEConfig extends Configuration implements IConfigurableObject
private final int[] levelByStacks = { 1, 10, 100, 1000 };
// Spatial IO/Dimension
private int storageBiomeID = -1;
private int storageProviderID = -1;
private int storageDimensionID = -1;
private double spatialPowerExponent = 1.35;
private double spatialPowerMultiplier = 1250.0;
@@ -251,8 +251,8 @@ public final class AEConfig extends Configuration implements IConfigurableObject
if( this.isFeatureEnabled( AEFeature.SPATIAL_IO ) )
{
this.storageBiomeID = this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).getInt( this.storageBiomeID );
this.storageProviderID = this.get( "spatialio", "storageProviderID", this.storageProviderID ).getInt( this.storageProviderID );
this.storageDimensionID = this.get( "spatialio", "storageDimensionID", this.storageDimensionID ).getInt( this.storageDimensionID );
this.spatialPowerMultiplier = this.get( "spatialio", "spatialPowerMultiplier", this.spatialPowerMultiplier ).getDouble(
this.spatialPowerMultiplier );
this.spatialPowerExponent = this.get( "spatialio", "spatialPowerExponent", this.spatialPowerExponent ).getDouble( this.spatialPowerExponent );
@@ -397,8 +397,8 @@ public final class AEConfig extends Configuration implements IConfigurableObject
{
if( this.isFeatureEnabled( AEFeature.SPATIAL_IO ) )
{
this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).set( this.storageBiomeID );
this.get( "spatialio", "storageProviderID", this.storageProviderID ).set( this.storageProviderID );
this.get( "spatialio", "storageDimensionID", this.storageDimensionID ).set( this.storageDimensionID );
}
this.get( "Client", "PowerUnit", this.selectedPowerUnit.name(), this.getListComment( this.selectedPowerUnit ) ).set( this.selectedPowerUnit.name() );
@@ -619,16 +619,16 @@ public final class AEConfig extends Configuration implements IConfigurableObject
return this.levelByStacks;
}
public int getStorageBiomeID()
{
return this.storageBiomeID;
}
public int getStorageProviderID()
{
return this.storageProviderID;
}
public int getStorageDimensionID()
{
return this.storageDimensionID;
}
public double getSpatialPowerExponent()
{
return this.spatialPowerExponent;
@@ -766,13 +766,13 @@ public final class AEConfig extends Configuration implements IConfigurableObject
// Setters keep visibility as low as possible.
void setStorageBiomeID( int id )
{
this.storageBiomeID = id;
}
void setStorageProviderID( int id )
{
this.storageProviderID = id;
}
void setStorageDimensionID( int id )
{
this.storageDimensionID = id;
}
}