From f07973a1ce2aef2ed39988cdebf9a2bdf4e2a6f0 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 4 Jul 2023 15:41:08 -0500 Subject: [PATCH] Refactor, remove unused class, add API docs --- .../com/seibel/distanthorizons/api/Readme.md | 1 - .../api/interfaces/IDhApiUnsafeWrapper.java | 3 + .../interfaces/block/IDhApiBiomeWrapper.java | 2 + .../client/IDhApiNoiseTextureConfig.java | 17 ++--- .../data/IDhApiTerrainDataRepo.java | 4 +- .../interfaces/render/IDhApiRenderProxy.java | 2 +- .../interfaces/world/IDhApiChunkWrapper.java | 68 ------------------- .../world/IDhApiDimensionTypeWrapper.java | 2 +- .../interfaces/world/IDhApiLevelWrapper.java | 3 +- .../interfaces/world/IDhApiWorldProxy.java | 3 +- .../api/methods/events/Readme.md | 3 - .../interfaces/IDhServerMessageReceived.java | 2 + .../api/methods/events/package-info.java | 4 ++ .../api/methods/override/Readme.md | 1 - .../api/methods/override/package-info.java | 4 ++ .../distanthorizons/api/package-info.java | 4 +- .../distanthorizons/coreapi/ModInfo.java | 9 +-- .../coreapi/util/BitShiftUtil.java | 2 +- .../core/api/internal/ClientApi.java | 4 +- .../world/IDimensionTypeWrapper.java | 6 +- 20 files changed, 43 insertions(+), 101 deletions(-) delete mode 100644 api/src/main/java/com/seibel/distanthorizons/api/Readme.md delete mode 100644 api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiChunkWrapper.java delete mode 100644 api/src/main/java/com/seibel/distanthorizons/api/methods/events/Readme.md create mode 100644 api/src/main/java/com/seibel/distanthorizons/api/methods/events/package-info.java delete mode 100644 api/src/main/java/com/seibel/distanthorizons/api/methods/override/Readme.md create mode 100644 api/src/main/java/com/seibel/distanthorizons/api/methods/override/package-info.java diff --git a/api/src/main/java/com/seibel/distanthorizons/api/Readme.md b/api/src/main/java/com/seibel/distanthorizons/api/Readme.md deleted file mode 100644 index 7d9cf4a6a..000000000 --- a/api/src/main/java/com/seibel/distanthorizons/api/Readme.md +++ /dev/null @@ -1 +0,0 @@ -The external api package holds any code that interfaces between Distant Horizons and other mods or projects. \ No newline at end of file diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/IDhApiUnsafeWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/IDhApiUnsafeWrapper.java index c0cd0b83c..0104a0f6d 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/IDhApiUnsafeWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/IDhApiUnsafeWrapper.java @@ -1,6 +1,9 @@ package com.seibel.distanthorizons.api.interfaces; /** + * Implemented by wrappers so developers can + * access the underlying Minecraft object(s). + * * @author James Seibel * @version 2023-6-17 */ diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/block/IDhApiBiomeWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/block/IDhApiBiomeWrapper.java index ac4323321..56e058107 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/block/IDhApiBiomeWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/block/IDhApiBiomeWrapper.java @@ -22,6 +22,8 @@ package com.seibel.distanthorizons.api.interfaces.block; import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper; /** + * A Minecraft version independent way of handling Biomes. + * * @author James Seibel * @version 3-5-2022 */ diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiNoiseTextureConfig.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiNoiseTextureConfig.java index 2ccb2533d..fc0598b1d 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiNoiseTextureConfig.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiNoiseTextureConfig.java @@ -30,23 +30,20 @@ import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue; */ public interface IDhApiNoiseTextureConfig extends IDhApiConfigGroup { - /** - * TODO - */ + /** If enabled a noise texture will be rendered on the LODs. */ IDhApiConfigValue noiseEnabled(); - /** - * TODO - */ + /** Defines how many steps of noise should be applied. */ IDhApiConfigValue noiseSteps(); - /** - * TODO - */ + /** Defines how intense the noise will be. */ IDhApiConfigValue noiseIntensity(); /** - * TODO + * Defines how far should the noise texture render before it fades away.

+ * + * 0.0 - the noise texture will render the entire LOD render distance.
+ * 3.0 - the noise texture will fade away at 1/3 of the LOD render distance. */ IDhApiConfigValue noiseDropoff(); diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/data/IDhApiTerrainDataRepo.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/data/IDhApiTerrainDataRepo.java index 1c097cacf..c387a9745 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/data/IDhApiTerrainDataRepo.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/data/IDhApiTerrainDataRepo.java @@ -20,7 +20,7 @@ public interface IDhApiTerrainDataRepo // getters // //=========// - /** Returns the terrain datapoint at the given block position, at or containing the given Y position. */ + /** Returns the terrain datapoint at the given block position, at/or containing the given Y position. */ DhApiResult getSingleDataPointAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosY, int blockPosZ); /** Returns every datapoint in the column located at the given block X and Z position top to bottom. */ DhApiResult getColumnDataAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosZ); @@ -76,7 +76,7 @@ public interface IDhApiTerrainDataRepo * * Notes:
* - Only works if the given {@link IDhApiLevelWrapper} points to a loaded level.
- * - If the player travels to this chunk, or the chunk is updated is some other way; your data will be replaced + * - If the player travels to this chunk, or the chunk is updated in some other way; your data will be replaced * by whatever the current chunk is.
* - This method may not update the LOD data immediately. Any other chunks have * been queued to update, they will be handled first. diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/render/IDhApiRenderProxy.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/render/IDhApiRenderProxy.java index 23d0e0e29..cd3d70703 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/render/IDhApiRenderProxy.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/render/IDhApiRenderProxy.java @@ -22,7 +22,7 @@ package com.seibel.distanthorizons.api.interfaces.render; import com.seibel.distanthorizons.api.objects.DhApiResult; /** - * Used to interact with Distant Horizons rendering systems. + * Used to interact with Distant Horizons' rendering system. * * @author James Seibel * @version 2023-2-8 diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiChunkWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiChunkWrapper.java deleted file mode 100644 index 030717601..000000000 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiChunkWrapper.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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.distanthorizons.api.interfaces.world; - -import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper; - -/** - * @author James Seibel - * @version 2022-7-14 - */ -public interface IDhApiChunkWrapper extends IDhApiUnsafeWrapper -{ - /** Returns the absolute Y coordinate of the highest block for the given relative X and Z coordinates. */ - int getMaxY(int relativeX, int relativeZ); - /** Returns the maximum absolute block position in the X direction. */ - int getMaxX(); - /** Returns the maximum absolute block position in the Z direction. */ - int getMaxZ(); - - /** Returns the absolute Y coordinate of the lowest block for the given relative X and Z coordinates. */ - int getMinY(int relativeX, int relativeZ); - /** Returns the minimum absolute block position in the X direction. */ - int getMinX(); - /** Returns the minimum absolute block position in the Z direction. */ - int getMinZ(); - - /** - * Returns true if this chunk's lighting has been built.
- * Note: for some versions of Minecraft this value may be unreliable. - */ - boolean isLightCorrect(); - - /** TODO what side of the block should this return the light for? */ - default int getBlockLight(int x, int y, int z) {return -1;} - /** TODO what side of the block should this return the light for? */ - default int getSkyLight(int x, int y, int z) {return -1;} - - /** - * Returns true if chunks exist in all 4 cardinal and 4 ordinal directions - * relative to this chunk.
- * IE: returns true if there are chunks to the North, South, East, West, NE, SE, SW, and NW - * of this chunk. - */ - boolean doNearbyChunksExist(); - - - // TODO these will probably need replacing once 1.7's ID system is done - //IBlockStateWrapper getBlockState(int x, int y, int z); - //IBiomeWrapper getBiome(int x, int y, int z); - -} diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java index 2411671e7..25fcbcc9a 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java @@ -25,7 +25,6 @@ import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper; * @author James Seibel * @version 2022-7-14 */ -// TODO: Make a dimension wrapper as well public interface IDhApiDimensionTypeWrapper extends IDhApiUnsafeWrapper { String getDimensionName(); @@ -33,4 +32,5 @@ public interface IDhApiDimensionTypeWrapper extends IDhApiUnsafeWrapper boolean hasCeiling(); boolean hasSkyLight(); + } diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java index 0cb0549d0..a45918c24 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java @@ -23,7 +23,8 @@ import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper; import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiLevelType; /** - * Can be either a Server or Client level. + * Can be either a Server or Client level.
+ * A level is equivalent to a dimension in vanilla Minecraft. * * @author James Seibel * @version 2022-7-14 diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiWorldProxy.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiWorldProxy.java index 360b00c2f..5cb4d36bc 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiWorldProxy.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiWorldProxy.java @@ -20,7 +20,8 @@ package com.seibel.distanthorizons.api.interfaces.world; /** - * Used to interact with Distant Horizons current world. + * Used to interact with Distant Horizons' current world.
+ * A world is equivalent to a single server connection or a singleplayer world. * * @author James Seibel * @version 2022-11-20 diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/Readme.md b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/Readme.md deleted file mode 100644 index 11a6f6d7b..000000000 --- a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ -The events api package holds objects and methods for listening to events fired by Distant Horizons'. - -Each interface should only contain one method and that method should match the name of the file. This is done so Developers can mix and match what events they want their classes to handle. \ No newline at end of file diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/interfaces/IDhServerMessageReceived.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/interfaces/IDhServerMessageReceived.java index 378f8fe3d..6919c392a 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/interfaces/IDhServerMessageReceived.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/interfaces/IDhServerMessageReceived.java @@ -2,7 +2,9 @@ package com.seibel.distanthorizons.api.methods.events.interfaces; /** * @author Cailin + * @deprecated marked as deprecated since it isn't currently implemented */ +@Deprecated public interface IDhServerMessageReceived extends IDhApiEvent { /** diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/package-info.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/package-info.java new file mode 100644 index 000000000..cb8e0173d --- /dev/null +++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/package-info.java @@ -0,0 +1,4 @@ +/** + * Holds objects and methods for listening to events fired by Distant Horizons'. + */ +package com.seibel.distanthorizons.api.methods.events; diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/override/Readme.md b/api/src/main/java/com/seibel/distanthorizons/api/methods/override/Readme.md deleted file mode 100644 index e15e3e6a0..000000000 --- a/api/src/main/java/com/seibel/distanthorizons/api/methods/override/Readme.md +++ /dev/null @@ -1 +0,0 @@ -The overide api package holds objects and methods for overriding Distant Horizons' backend systems, so they can be replaced and improved. \ No newline at end of file diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/override/package-info.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/override/package-info.java new file mode 100644 index 000000000..0c95e66a6 --- /dev/null +++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/override/package-info.java @@ -0,0 +1,4 @@ +/** + * The override api package holds objects and methods for overriding Distant Horizons' backend systems, so they can be replaced or improved. + */ +package com.seibel.distanthorizons.api.methods.override; diff --git a/api/src/main/java/com/seibel/distanthorizons/api/package-info.java b/api/src/main/java/com/seibel/distanthorizons/api/package-info.java index 58917cf56..a9bc1098d 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/package-info.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/package-info.java @@ -1,5 +1,7 @@ /** * Start Here
- * {@link com.seibel.distanthorizons.api.DhApi} has almost every method you would want. + * {@link com.seibel.distanthorizons.api.DhApi} has almost every method you would want.

+ * + * This package contains every method and object that is safe to use within the API. */ package com.seibel.distanthorizons.api; diff --git a/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java b/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java index 52989f362..b32cb2b9d 100644 --- a/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java +++ b/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java @@ -19,12 +19,9 @@ package com.seibel.distanthorizons.coreapi; -/** - * This file is similar to mcmod.info - * - * @author James Seibel - * @author Ran - * @version 2023-6-29 +/** + * This file is similar to mcmod.info + * and contains most meta-information related to Distant Horizons. */ public final class ModInfo { diff --git a/api/src/main/java/com/seibel/distanthorizons/coreapi/util/BitShiftUtil.java b/api/src/main/java/com/seibel/distanthorizons/coreapi/util/BitShiftUtil.java index 335c02d36..410dfb013 100644 --- a/api/src/main/java/com/seibel/distanthorizons/coreapi/util/BitShiftUtil.java +++ b/api/src/main/java/com/seibel/distanthorizons/coreapi/util/BitShiftUtil.java @@ -23,7 +23,7 @@ public class BitShiftUtil */ public static int powerOfTwo(int value) { return 1 << value; } /** see {@link BitShiftUtil#powerOfTwo(int)} for documentation */ - public static long powerOfTwo(long value) { return 1 << value; } + public static long powerOfTwo(long value) { return 1L << value; } /** diff --git a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientApi.java b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientApi.java index d2fd8fb9f..69ca993ca 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientApi.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientApi.java @@ -272,7 +272,7 @@ public class ClientApi } short commandLength = byteBuf.readShort(); - if (commandLength > 32) + if (commandLength > 32) // TODO 32 should be put into a constant somewhere { LOGGER.error("Server sent command > 32"); ClientApi.INSTANCE.serverIsMalformed = true; @@ -295,7 +295,7 @@ public class ClientApi case "WorldChanged": short worldKeyLength = byteBuf.readShort(); - if (worldKeyLength > 128) + if (worldKeyLength > 128) // TODO 128 should be put into a constant somewhere { LOGGER.error("Server sent worldKey > 128"); this.serverIsMalformed = true; diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java index 044e62b99..d5ae1845a 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java @@ -28,11 +28,13 @@ import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindab */ public interface IDimensionTypeWrapper extends IDhApiDimensionTypeWrapper, IBindable { - + @Override String getDimensionName(); + @Override boolean hasCeiling(); - + + @Override boolean hasSkyLight(); }