From 1099f5ec24ef75dd8d5bc6d9b679557239fcbddc Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sun, 13 Nov 2022 21:45:35 -0600 Subject: [PATCH] Add IDhApi Biome and BlockState Wrapper objects --- .../interfaces/block/IDhApiBiomeWrapper.java | 31 +++++++++++++++++++ .../block/IDhApiBlockStateWrapper.java | 14 +++++++++ .../seibel/lod/core/render/LodQuadTree.java | 1 + .../block/IBlockStateWrapper.java | 13 ++++++-- .../world/IBiomeWrapper.java | 3 +- 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBiomeWrapper.java create mode 100644 api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBlockStateWrapper.java diff --git a/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBiomeWrapper.java b/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBiomeWrapper.java new file mode 100644 index 000000000..6f8391c51 --- /dev/null +++ b/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBiomeWrapper.java @@ -0,0 +1,31 @@ +/* + * This file is part of the Distant Horizons mod (formerly the LOD Mod), + * licensed under the GNU LGPL v3 License. + * + * Copyright (C) 2020-2022 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.api.interfaces.block; + +import com.seibel.lod.api.interfaces.IDhApiUnsafeWrapper; + +/** + * @author James Seibel + * @version 3-5-2022 + */ +public interface IDhApiBiomeWrapper extends IDhApiUnsafeWrapper +{ + String getName(); +} diff --git a/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBlockStateWrapper.java b/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBlockStateWrapper.java new file mode 100644 index 000000000..8a183385a --- /dev/null +++ b/api/src/main/java/com/seibel/lod/api/interfaces/block/IDhApiBlockStateWrapper.java @@ -0,0 +1,14 @@ +package com.seibel.lod.api.interfaces.block; + +import com.seibel.lod.api.interfaces.IDhApiUnsafeWrapper; + +/** + * A Minecraft version independent way of handling Blocks. + * + * @author James Seibel + * @version 2022-11-12 + */ +public interface IDhApiBlockStateWrapper extends IDhApiUnsafeWrapper +{ + +} diff --git a/core/src/main/java/com/seibel/lod/core/render/LodQuadTree.java b/core/src/main/java/com/seibel/lod/core/render/LodQuadTree.java index 7684b7d36..899d17862 100644 --- a/core/src/main/java/com/seibel/lod/core/render/LodQuadTree.java +++ b/core/src/main/java/com/seibel/lod/core/render/LodQuadTree.java @@ -49,6 +49,7 @@ public class LodQuadTree implements AutoCloseable { public final byte numbersOfSectionLevels; private final MovableGridRingList[] ringLists; + /** measured in blocks */ public final int viewDistance; private final IRenderSourceProvider renderSourceProvider; diff --git a/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockStateWrapper.java b/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockStateWrapper.java index b6c038a18..ae784fb80 100644 --- a/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockStateWrapper.java +++ b/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockStateWrapper.java @@ -1,8 +1,17 @@ package com.seibel.lod.core.wrapperInterfaces.block; -public interface IBlockStateWrapper { - String serialize(); +import com.seibel.lod.api.interfaces.block.IDhApiBlockStateWrapper; +/** + * A Minecraft version independent way of handling Blocks. + * + * @author James Seibel + * @version 2022-11-12 + */ +public interface IBlockStateWrapper extends IDhApiBlockStateWrapper +{ + String serialize(); + // TODO: // boolean hasFaceCullingFor(ELodDirection dir); // boolean hasNoCollision(); diff --git a/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java b/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java index 49f153b82..ba0c7fdd5 100644 --- a/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java +++ b/core/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java @@ -19,13 +19,14 @@ package com.seibel.lod.core.wrapperInterfaces.world; +import com.seibel.lod.api.interfaces.block.IDhApiBiomeWrapper; import com.seibel.lod.core.interfaces.dependencyInjection.IBindable; /** * @author James Seibel * @version 3-5-2022 */ -public interface IBiomeWrapper extends IBindable +public interface IBiomeWrapper extends IDhApiBiomeWrapper, IBindable { String getName(); String serialize();