Make Core Level Wrappers implement API wrappers

This commit is contained in:
James Seibel
2022-09-16 22:55:03 -05:00
parent fc5cb6796b
commit 9adf2a75f8
13 changed files with 48 additions and 34 deletions
@@ -6,10 +6,11 @@ package com.seibel.lod.api.items.interfaces;
* the base Minecraft Objects.
*
* @author James Seibel
* @version 2022-9-6
* @version 2022-9-16
*/
public interface IDhApiUnsafeWrapper
{
/**
* Returns the Minecraft object this wrapper contains. <br>
* <strong>Warning</strong>: This object will be Minecraft
@@ -20,6 +21,6 @@ public interface IDhApiUnsafeWrapper
* in order to determine what object this method returns for
* the specific version of Minecraft you are developing for.
*/
public Object getWrappedMcObject_UNSAFE();
Object getWrappedMcObject_UNSAFE();
}
@@ -1,16 +1,10 @@
package com.seibel.lod.core;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigGroup;
import com.seibel.lod.api.items.interfaces.config.both.IDhApiWorldGenerationConfig;
import com.seibel.lod.api.items.interfaces.config.client.*;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.DhApiConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.both.DhApiWorldGenerationConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.client.*;
import com.seibel.lod.core.api.external.methods.config.DhApiConfig;
import com.seibel.lod.core.datatype.column.ColumnRenderLoader;
import com.seibel.lod.core.datatype.full.FullDataLoader;
import com.seibel.lod.core.datatype.full.SparseDataLoader;
import com.seibel.lod.core.interfaces.dependencyInjection.ApiCoreInjectors;
import com.seibel.lod.core.interfaces.dependencyInjection.IDependencyInjector;
/**
* Handles first time Core setup.
@@ -1,4 +1,4 @@
package com.seibel.lod.core.api.external.coreImplementations.methods.config;
package com.seibel.lod.core.api.external.methods.config;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfig;
import com.seibel.lod.api.items.interfaces.config.both.IDhApiWorldGenerationConfig;
@@ -6,11 +6,11 @@ import com.seibel.lod.api.items.interfaces.config.client.IDhApiBuffersConfig;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiGraphicsConfig;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiMultiplayerConfig;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiThreadingConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.both.DhApiWorldGenerationConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.client.DhApiBuffersConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.client.DhApiGraphicsConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.client.DhApiMultiplayerConfig;
import com.seibel.lod.core.api.external.coreImplementations.methods.config.client.DhApiThreadingConfig;
import com.seibel.lod.core.api.external.methods.config.both.DhApiWorldGenerationConfig;
import com.seibel.lod.core.api.external.methods.config.client.DhApiBuffersConfig;
import com.seibel.lod.core.api.external.methods.config.client.DhApiGraphicsConfig;
import com.seibel.lod.core.api.external.methods.config.client.DhApiMultiplayerConfig;
import com.seibel.lod.core.api.external.methods.config.client.DhApiThreadingConfig;
/**
* A singleton that holds all of the config groups for the API.
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.both;
package com.seibel.lod.core.api.external.methods.config.both;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
import com.seibel.lod.api.items.interfaces.config.both.IDhApiWorldGenerationConfig;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiBuffersConfig;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiDebuggingConfig;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.enums.config.*;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.enums.rendering.*;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiMultiplayerConfig;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.core.api.external.coreImplementations.methods.config.client;
package com.seibel.lod.core.api.external.methods.config.client;
import com.seibel.lod.api.items.interfaces.config.IDhApiConfigValue;
import com.seibel.lod.api.items.interfaces.config.client.IDhApiThreadingConfig;
@@ -5,8 +5,16 @@ import com.seibel.lod.core.wrapperInterfaces.block.IBlockStateWrapper;
import javax.annotation.Nullable;
public interface IClientLevelWrapper extends ILevelWrapper {
/**
*
* @version 2022-9-16
*/
public interface IClientLevelWrapper extends ILevelWrapper
{
@Nullable
IServerLevelWrapper tryGetServerSideWrapper();
int computeBaseColor(DhBlockPos pos, IBiomeWrapper biome, IBlockStateWrapper blockState);
}
@@ -19,20 +19,22 @@
package com.seibel.lod.core.wrapperInterfaces.world;
import com.seibel.lod.api.items.interfaces.world.IDhApiDimensionTypeWrapper;
import com.seibel.lod.core.interfaces.dependencyInjection.IBindable;
/**
* @author James Seibel
* @version 2022-8-23
* @version 2022-9-16
*/
public interface IDimensionTypeWrapper extends IBindable
public interface IDimensionTypeWrapper extends IDhApiDimensionTypeWrapper, IBindable
{
String getDimensionName();
boolean hasCeiling();
boolean hasSkyLight();
Object getWrappedMcObject();
Object getWrappedMcObject_UNSAFE();
}
@@ -19,6 +19,8 @@
package com.seibel.lod.core.wrapperInterfaces.world;
import com.seibel.lod.api.items.interfaces.world.IDhApiDimensionTypeWrapper;
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
import com.seibel.lod.core.interfaces.dependencyInjection.IBindable;
import com.seibel.lod.core.pos.DhBlockPos;
import com.seibel.lod.core.pos.DhChunkPos;
@@ -29,32 +31,39 @@ import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper;
* Can be either a Server world or a Client world.
*
* @author James Seibel
* @version 2022-9-10
* @version 2022-9-16
*/
public interface ILevelWrapper extends IBindable
public interface ILevelWrapper extends IDhApiLevelWrapper, IBindable
{
IDimensionTypeWrapper getDimensionType();
@Override
IDhApiDimensionTypeWrapper getDimensionType();
int getBlockLight(int x, int y, int z);
int getSkyLight(int x, int y, int z);
@Override
boolean hasCeiling();
@Override
boolean hasSkyLight();
@Override
int getHeight();
default short getMinHeight() { return 0; }
@Override
default int getMinHeight() { return 0; }
default IChunkWrapper tryGetChunk(DhChunkPos pos) { return null; }
boolean hasChunkLoaded(int chunkX, int chunkZ);
IBlockStateWrapper getBlockState(DhBlockPos pos);
IBiomeWrapper getBiome(DhBlockPos pos);
Object unwrapLevel();
@Override
Object getWrappedMcObject_UNSAFE();
}