Update the License header to match the new mod name

LOD -> Distance Horizons
This commit is contained in:
James Seibel
2021-10-19 21:14:57 -05:00
parent 443bb64df0
commit 58d5a8beda
56 changed files with 610 additions and 142 deletions
Binary file not shown.
+4 -1
View File
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -20,6 +21,7 @@ package com.seibel.lod;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.ModLoadingContext;
@@ -35,6 +37,7 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
* <br> * <br>
* If you are looking for the real start of the mod * If you are looking for the real start of the mod
* check out the ClientProxy. * check out the ClientProxy.
*
* @author James Seibel * @author James Seibel
* @version 7-3-2021 * @version 7-3-2021
*/ */
+2 -1
View File
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,6 +19,22 @@
package com.seibel.lod.builders.bufferBuilding; package com.seibel.lod.builders.bufferBuilding;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.locks.ReentrantLock;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL15C;
import org.lwjgl.opengl.GL45;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.seibel.lod.builders.bufferBuilding.lodTemplates.Box; import com.seibel.lod.builders.bufferBuilding.lodTemplates.Box;
@@ -30,8 +47,14 @@ import com.seibel.lod.objects.RegionPos;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.proxy.GlProxy; import com.seibel.lod.proxy.GlProxy;
import com.seibel.lod.render.LodRenderer; import com.seibel.lod.render.LodRenderer;
import com.seibel.lod.util.*; import com.seibel.lod.util.DataPointUtil;
import com.seibel.lod.util.DetailDistanceUtil;
import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodThreadFactory;
import com.seibel.lod.util.LodUtil;
import com.seibel.lod.util.ThreadMapUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.vertex.VertexBuffer; import net.minecraft.client.renderer.vertex.VertexBuffer;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
@@ -39,21 +62,6 @@ import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.LightType; import net.minecraft.world.LightType;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL15C;
import org.lwjgl.opengl.GL45;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.locks.ReentrantLock;
/** /**
* This object is used to create NearFarBuffer objects. * This object is used to create NearFarBuffer objects.
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,15 +19,16 @@
package com.seibel.lod.builders.bufferBuilding.lodTemplates; package com.seibel.lod.builders.bufferBuilding.lodTemplates;
import java.util.Map;
import com.seibel.lod.enums.DebugMode; import com.seibel.lod.enums.DebugMode;
import com.seibel.lod.util.ColorUtil; import com.seibel.lod.util.ColorUtil;
import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.texture.NativeImage; import net.minecraft.client.renderer.texture.NativeImage;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.util.Map;
/** /**
* This is the abstract class used to create different * This is the abstract class used to create different
* BufferBuilders. * BufferBuilders.
@@ -1,19 +1,39 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.builders.bufferBuilding.lodTemplates; package com.seibel.lod.builders.bufferBuilding.lodTemplates;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
import com.seibel.lod.enums.DebugMode; import com.seibel.lod.enums.DebugMode;
import com.seibel.lod.util.ColorUtil; import com.seibel.lod.util.ColorUtil;
import com.seibel.lod.util.DataPointUtil; import com.seibel.lod.util.DataPointUtil;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3i; import net.minecraft.util.math.vector.Vector3i;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/** /**
* Similar to Minecraft's AxisAlignedBoundingBox. * Similar to Minecraft's AxisAlignedBoundingBox.
* @author Leonardo Amato * @author Leonardo Amato
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,15 +19,16 @@
package com.seibel.lod.builders.bufferBuilding.lodTemplates; package com.seibel.lod.builders.bufferBuilding.lodTemplates;
import java.util.Map;
import com.seibel.lod.enums.DebugMode; import com.seibel.lod.enums.DebugMode;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.texture.NativeImage; import net.minecraft.client.renderer.texture.NativeImage;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.util.Map;
/** /**
* TODO DynamicLodTemplate * TODO DynamicLodTemplate
* Chunks smoothly transition between * Chunks smoothly transition between
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,15 +19,16 @@
package com.seibel.lod.builders.bufferBuilding.lodTemplates; package com.seibel.lod.builders.bufferBuilding.lodTemplates;
import java.util.Map;
import com.seibel.lod.enums.DebugMode; import com.seibel.lod.enums.DebugMode;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.texture.NativeImage; import net.minecraft.client.renderer.texture.NativeImage;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.util.Map;
/** /**
* TODO #21 TriangularLodTemplate * TODO #21 TriangularLodTemplate
* Builds each LOD chunk as a singular rectangular prism. * Builds each LOD chunk as a singular rectangular prism.
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -68,7 +69,6 @@ import net.minecraft.world.LightType;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeColors; import net.minecraft.world.biome.BiomeColors;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.ChunkSection; import net.minecraft.world.chunk.ChunkSection;
import net.minecraft.world.chunk.IChunk; import net.minecraft.world.chunk.IChunk;
import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorld;
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -32,15 +33,12 @@ import com.seibel.lod.builders.lodBuilding.LodBuilder;
import com.seibel.lod.builders.lodBuilding.LodBuilderConfig; import com.seibel.lod.builders.lodBuilding.LodBuilderConfig;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.DistanceGenerationMode;
import com.seibel.lod.handlers.ChunkLoader;
import com.seibel.lod.objects.LodDimension; import com.seibel.lod.objects.LodDimension;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.palette.UpgradeData; import net.minecraft.util.palette.UpgradeData;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
@@ -70,6 +68,7 @@ import net.minecraftforge.common.WorldWorkerManager.IWorker;
/** /**
* This is used to generate a LodChunk at a given ChunkPos. * This is used to generate a LodChunk at a given ChunkPos.
*
* @author James Seibel * @author James Seibel
* @version 10-15-2021 * @version 10-15-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,7 +19,14 @@
package com.seibel.lod.builders.worldGeneration; package com.seibel.lod.builders.worldGeneration;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.function.Predicate;
import java.util.stream.Stream;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@@ -34,7 +42,11 @@ import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.SectionPos; import net.minecraft.util.math.SectionPos;
import net.minecraft.util.registry.DynamicRegistries; import net.minecraft.util.registry.DynamicRegistries;
import net.minecraft.world.*; import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.DimensionType;
import net.minecraft.world.EmptyTickList;
import net.minecraft.world.ISeedReader;
import net.minecraft.world.ITickList;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeManager; import net.minecraft.world.biome.BiomeManager;
import net.minecraft.world.border.WorldBorder; import net.minecraft.world.border.WorldBorder;
@@ -49,12 +61,6 @@ import net.minecraft.world.lighting.WorldLightManager;
import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorld;
import net.minecraft.world.storage.IWorldInfo; import net.minecraft.world.storage.IWorldInfo;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.function.Predicate;
import java.util.stream.Stream;
/** /**
* This is a fake ServerWorld used when generating features. * This is a fake ServerWorld used when generating features.
@@ -1,5 +1,30 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.builders.worldGeneration; package com.seibel.lod.builders.worldGeneration;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
import com.seibel.lod.builders.lodBuilding.LodBuilder; import com.seibel.lod.builders.lodBuilding.LodBuilder;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.DistanceGenerationMode;
@@ -11,16 +36,11 @@ import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodThreadFactory; import com.seibel.lod.util.LodThreadFactory;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.common.WorldWorkerManager; import net.minecraftforge.common.WorldWorkerManager;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* A singleton that handles all long distance LOD world generation. * A singleton that handles all long distance LOD world generation.
* @author James Seibel * @author James Seibel
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -21,6 +22,7 @@ package com.seibel.lod.enums;
/** /**
* heightmap <br> * heightmap <br>
* multi_lod <br> * multi_lod <br>
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 19-10-2021 * @version 19-10-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -23,6 +24,7 @@ package com.seibel.lod.enums;
* Far_First <br> * Far_First <br>
* <br> * <br>
* Determines how fast the buffers need to be regenerated * Determines how fast the buffers need to be regenerated
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-25-2021 * @version 9-25-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -20,6 +21,7 @@ package com.seibel.lod.enums;
/** /**
* off, detail, detail wireframe * off, detail, detail wireframe
*
* @author James Seibel * @author James Seibel
* @version 8-28-2021 * @version 8-28-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -27,6 +28,7 @@ package com.seibel.lod.enums;
* SERVER <br><br> * SERVER <br><br>
* <p> * <p>
* In order of fastest to slowest. * In order of fastest to slowest.
*
* @author James Seibel * @author James Seibel
* @author Leonardo Amato * @author Leonardo Amato
* @version 8-7-2021 * @version 8-7-2021
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -20,6 +21,7 @@ package com.seibel.lod.enums;
/** /**
* NEAR, FAR, or NEAR_AND_FAR. * NEAR, FAR, or NEAR_AND_FAR.
*
* @author James Seibel * @author James Seibel
* @version 02-14-2021 * @version 02-14-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -23,6 +24,7 @@ package com.seibel.lod.enums;
* NEVER_DRAW_FOG, <br> * NEVER_DRAW_FOG, <br>
* ALWAYS_DRAW_FOG_FAST, <br> * ALWAYS_DRAW_FOG_FAST, <br>
* ALWAYS_DRAW_FOG_FANCY <br> * ALWAYS_DRAW_FOG_FANCY <br>
*
* @author James Seibel * @author James Seibel
* @version 7-3-2021 * @version 7-3-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -20,6 +21,7 @@ package com.seibel.lod.enums;
/** /**
* fast, fancy, or off * fast, fancy, or off
*
* @author James Seibel * @author James Seibel
* @version 02-14-2021 * @version 02-14-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -24,6 +25,7 @@ package com.seibel.lod.enums;
* <br> * <br>
* Determines which LODs should have priority when generating * Determines which LODs should have priority when generating
* outside the normal view distance. * outside the normal view distance.
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-25-2021 * @version 9-25-2021
*/ */
@@ -1,13 +1,36 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.enums; package com.seibel.lod.enums;
/** /**
* Minecraft, Lod_Builder, None * Minecraft, Lod_Builder, None
*
* @author James Seibel * @author James Seibel
* @version 10-1-2021 * @version 10-1-2021
*/ */
public enum GlProxyContext public enum GlProxyContext
{ {
/** Minecraft's render thread */
MINECRAFT, MINECRAFT,
/** The context we send buffers to the GPU on */
LOD_BUILDER, LOD_BUILDER,
/** used to un-bind threads */ /** used to un-bind threads */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -25,6 +26,7 @@ package com.seibel.lod.enums;
* High <br> * High <br>
* <br> * <br>
* this indicates the base of the quadratic function we use for the quality drop off * this indicates the base of the quadratic function we use for the quality drop off
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-29-2021 * @version 9-29-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,17 +19,18 @@
package com.seibel.lod.enums; package com.seibel.lod.enums;
import com.seibel.lod.util.LodUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import com.seibel.lod.util.LodUtil;
/** /**
* chunk <Br> * chunk <Br>
* half_chunk <Br> * half_chunk <Br>
* four_blocks <br> * four_blocks <br>
* two_blocks <Br> * two_blocks <Br>
* block <br> * block <br>
*
* @author James Seibel * @author James Seibel
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-25-2021 * @version 9-25-2021
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -24,6 +25,7 @@ package com.seibel.lod.enums;
* High <br> * High <br>
* <br> * <br>
* this is a quality scale for the detail drop-off * this is a quality scale for the detail drop-off
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-25-2021 * @version 9-25-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -25,6 +26,7 @@ import com.seibel.lod.builders.bufferBuilding.lodTemplates.TriangularLodTemplate
/** /**
* Cubic, Triangular, Dynamic * Cubic, Triangular, Dynamic
*
* @author James Seibel * @author James Seibel
* @version 10-10-2021 * @version 10-10-2021
*/ */
@@ -2,20 +2,21 @@ package com.seibel.lod.enums;
/** /**
* NONE, GAME_SHADING * NONE, GAME_SHADING
*
* @author James Seibel * @author James Seibel
* @version 7-25-2020 * @version 7-25-2020
*/ */
public enum ShadingMode public enum ShadingMode
{ {
/** /**
* LODs will have the same lighting on every side. * LODs will have darker sides and bottoms to simulate
* can make large similarly colored areas hard to differentiate * Minecraft's fast lighting.
*/ */
NONE, GAME_SHADING,
/** /**
* LODs will have darker sides and bottoms to simulate * LODs will use ambient occlusion to mimic Minecarft's
* Minecraft's fast, top down lighting. * Fancy lighting.
*/ */
GAME_SHADING AMBIENT_OCCLUSION
} }
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.enums; package com.seibel.lod.enums;
/** /**
@@ -6,6 +25,7 @@ package com.seibel.lod.enums;
* <p> * <p>
* This represents how far the LODs should overlap with * This represents how far the LODs should overlap with
* the vanilla Minecraft terrain. * the vanilla Minecraft terrain.
*
* @author James Seibel * @author James Seibel
* @version 10-11-2021 * @version 10-11-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -21,6 +22,7 @@ package com.seibel.lod.enums;
/** /**
* heightmap <br> * heightmap <br>
* multi_lod <br> * multi_lod <br>
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 10-07-2021 * @version 10-07-2021
*/ */
@@ -1,17 +1,40 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.handlers; package com.seibel.lod.handlers;
import java.io.File;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.datafix.DataFixesManager;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.chunk.IChunk; import net.minecraft.world.chunk.IChunk;
import net.minecraft.world.chunk.storage.ChunkSerializer; import net.minecraft.world.chunk.storage.ChunkSerializer;
import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorld;
import java.io.File; /**
*
* @author ??
* @version ??
*/
public class ChunkLoader public class ChunkLoader
{ {
public static IChunk getChunkFromFile(ChunkPos pos){ public static IChunk getChunkFromFile(ChunkPos pos){
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,6 +19,18 @@
package com.seibel.lod.handlers; package com.seibel.lod.handlers;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.DistanceGenerationMode;
import com.seibel.lod.enums.VerticalQuality; import com.seibel.lod.enums.VerticalQuality;
import com.seibel.lod.objects.LodDimension; import com.seibel.lod.objects.LodDimension;
@@ -28,19 +41,12 @@ import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.util.LodThreadFactory; import com.seibel.lod.util.LodThreadFactory;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.util.ThreadMapUtil; import com.seibel.lod.util.ThreadMapUtil;
import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* This object handles creating LodRegions * This object handles creating LodRegions
* from files and saving LodRegion objects * from files and saving LodRegion objects
* to file. * to file.
*
* @author James Seibel * @author James Seibel
* @author Cola * @author Cola
* @version 9-25-2021 * @version 9-25-2021
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,17 +19,18 @@
package com.seibel.lod.handlers; package com.seibel.lod.handlers;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import com.seibel.lod.enums.FogQuality; import com.seibel.lod.enums.FogQuality;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/** /**
* This object is used to get variables from methods * This object is used to get variables from methods
* where they are private. Specifically the fog setting * where they are private. Specifically the fog setting
* in Optifine. * in Optifine.
*
* @author James Seibel * @author James Seibel
* @version 9-25-2021 * @version 9-25-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,22 +19,25 @@
package com.seibel.lod.mixin; package com.seibel.lod.mixin;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.seibel.lod.LodMain;
import com.seibel.lod.config.LodConfig;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.WorldRenderer;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.seibel.lod.LodMain;
import com.seibel.lod.config.LodConfig;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.WorldRenderer;
/** /**
* This class is used to mix in my rendering code * This class is used to mix in my rendering code
* before Minecraft starts rendering blocks. * before Minecraft starts rendering blocks.
* If this wasn't done, and we used Forge's * If this wasn't done, and we used Forge's
* render last event, the LODs would render on top * render last event, the LODs would render on top
* of the normal terrain. * of the normal terrain.
*
* @author James Seibel * @author James Seibel
* @version 9-19-2021 * @version 9-19-2021
*/ */
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.objects; package com.seibel.lod.objects;
/** /**
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,23 +19,28 @@
package com.seibel.lod.objects; package com.seibel.lod.objects;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.DistanceGenerationMode;
import com.seibel.lod.enums.GenerationPriority; import com.seibel.lod.enums.GenerationPriority;
import com.seibel.lod.enums.VerticalQuality; import com.seibel.lod.enums.VerticalQuality;
import com.seibel.lod.handlers.LodDimensionFileHandler; import com.seibel.lod.handlers.LodDimensionFileHandler;
import com.seibel.lod.util.*; import com.seibel.lod.util.DataPointUtil;
import com.seibel.lod.util.DetailDistanceUtil;
import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodThreadFactory;
import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.DimensionType; import net.minecraft.world.DimensionType;
import net.minecraft.world.server.ServerChunkProvider; import net.minecraft.world.server.ServerChunkProvider;
import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorld;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* This object holds all loaded LOD regions * This object holds all loaded LOD regions
@@ -43,6 +49,7 @@ import java.util.concurrent.Executors;
* <strong>Coordinate Standard: </strong><br> * <strong>Coordinate Standard: </strong><br>
* Coordinate called posX or posZ are relative LevelPos coordinates <br> * Coordinate called posX or posZ are relative LevelPos coordinates <br>
* unless stated otherwise. <br> * unless stated otherwise. <br>
*
* @author Leonardo Amato * @author Leonardo Amato
* @author James Seibel * @author James Seibel
* @version 10-10-2021 * @version 10-10-2021
@@ -1,21 +1,30 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.objects; package com.seibel.lod.objects;
import com.seibel.lod.config.LodConfig;
import com.seibel.lod.enums.DistanceGenerationMode; import com.seibel.lod.enums.DistanceGenerationMode;
import com.seibel.lod.enums.VerticalQuality; import com.seibel.lod.enums.VerticalQuality;
import com.seibel.lod.util.DataPointUtil; import com.seibel.lod.util.DataPointUtil;
import com.seibel.lod.util.DetailDistanceUtil; import com.seibel.lod.util.DetailDistanceUtil;
import com.seibel.lod.util.LevelPosUtil; import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.chunk.storage.RegionFile;
import net.minecraft.world.server.ServerChunkProvider;
import net.minecraft.world.server.ServerWorld;
import org.lwjgl.system.CallbackI;
import java.io.File;
/** /**
* This object holds all loaded LevelContainers acting as a quad tree * This object holds all loaded LevelContainers acting as a quad tree
@@ -24,6 +33,7 @@ import java.io.File;
* <strong>Coordinate Standard: </strong><br> * <strong>Coordinate Standard: </strong><br>
* Coordinate called posX or posZ are relative LevelPos coordinates <br> * Coordinate called posX or posZ are relative LevelPos coordinates <br>
* unless stated otherwise. <br> * unless stated otherwise. <br>
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 10-10-2021 * @version 10-10-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -18,14 +19,16 @@
package com.seibel.lod.objects; package com.seibel.lod.objects;
import com.seibel.lod.proxy.ClientProxy;
import net.minecraft.world.DimensionType;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map; import java.util.Map;
import com.seibel.lod.proxy.ClientProxy;
import net.minecraft.world.DimensionType;
/** /**
* This stores all LODs for a given world. * This stores all LODs for a given world.
*
* @author James Seibel * @author James Seibel
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-27-2021 * @version 9-27-2021
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -24,6 +25,7 @@ import com.seibel.lod.enums.FogQuality;
/** /**
* This object is just a replacement for an array * This object is just a replacement for an array
* to make things easier to understand in the LodRenderer. * to make things easier to understand in the LodRenderer.
*
* @author James Seibel * @author James Seibel
* @version 7-03-2021 * @version 7-03-2021
*/ */
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.objects; package com.seibel.lod.objects;
import com.seibel.lod.util.LevelPosUtil; import com.seibel.lod.util.LevelPosUtil;
@@ -5,6 +24,7 @@ import com.seibel.lod.util.LevelPosUtil;
/** /**
* Holds the levelPos that need to be generated. * Holds the levelPos that need to be generated.
* TODO is that correct? * TODO is that correct?
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-27-2021 * @version 9-27-2021
*/ */
@@ -1,11 +1,30 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.objects; package com.seibel.lod.objects;
import java.util.Arrays;
import com.seibel.lod.proxy.ClientProxy; import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.util.LevelPosUtil; import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import java.util.Arrays;
/** /**
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-18-2021 * @version 9-18-2021
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -19,11 +20,13 @@
package com.seibel.lod.objects; package com.seibel.lod.objects;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
/** /**
* This object is similar to ChunkPos or BlockPos. * This object is similar to ChunkPos or BlockPos.
*
* @author James Seibel * @author James Seibel
* @version 8-21-2021 * @version 8-21-2021
*/ */
@@ -1,9 +1,35 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.objects; package com.seibel.lod.objects;
import com.seibel.lod.util.*; import com.seibel.lod.util.DataPointUtil;
import com.seibel.lod.util.DetailDistanceUtil;
import java.util.Arrays; import com.seibel.lod.util.LevelPosUtil;
import com.seibel.lod.util.LodUtil;
import com.seibel.lod.util.ThreadMapUtil;
/**
*
* @author Leonardo Amato
* @version ??
*/
public class VerticalLevelContainer implements LevelContainer public class VerticalLevelContainer implements LevelContainer
{ {
@@ -49,6 +75,7 @@ public class VerticalLevelContainer implements LevelContainer
return true; return true;
} }
@Override
public boolean addVerticalData(long[] data, int posX, int posZ) public boolean addVerticalData(long[] data, int posX, int posZ)
{ {
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -153,7 +154,7 @@ public class ClientProxy
} }
} }
/** used in a development environment to change settings on the fly */
private void applyConfigOverrides() private void applyConfigOverrides()
{ {
// remind the developer(s) that the config override is active // remind the developer(s) that the config override is active
@@ -1,11 +1,31 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.proxy; package com.seibel.lod.proxy;
import com.mojang.blaze3d.systems.RenderSystem;
import com.seibel.lod.enums.GlProxyContext;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import org.lwjgl.opengl.GL; import org.lwjgl.opengl.GL;
import org.lwjgl.opengl.GLCapabilities; import org.lwjgl.opengl.GLCapabilities;
import com.mojang.blaze3d.systems.RenderSystem;
import com.seibel.lod.enums.GlProxyContext;
/** /**
* A singleton that holds references to different openGL contexts * A singleton that holds references to different openGL contexts
* and GPU capabilities. * and GPU capabilities.
@@ -16,6 +36,7 @@ import org.lwjgl.opengl.GLCapabilities;
* https://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-AsynchronousBufferTransfers.pdf <br> * https://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-AsynchronousBufferTransfers.pdf <br>
* https://learnopengl.com/Advanced-OpenGL/Advanced-Data <br> * https://learnopengl.com/Advanced-OpenGL/Advanced-Data <br>
* https://gamedev.stackexchange.com/questions/91995/edit-vbo-data-or-create-a-new-one <br><br> * https://gamedev.stackexchange.com/questions/91995/edit-vbo-data-or-create-a-new-one <br><br>
*
* @author James Seibel * @author James Seibel
* @version 10-2-2021 * @version 10-2-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -61,6 +62,7 @@ import net.minecraft.util.math.vector.Vector3d;
/** /**
* This is where all the magic happens. <br> * This is where all the magic happens. <br>
* This is where LODs are draw to the world. * This is where LODs are draw to the world.
*
* @author James Seibel * @author James Seibel
* @version 10-13-2021 * @version 10-13-2021
*/ */
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -20,6 +21,7 @@ package com.seibel.lod.render;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3d;
@@ -27,6 +29,7 @@ import net.minecraft.util.math.vector.Vector3d;
/** /**
* This holds miscellaneous helper code * This holds miscellaneous helper code
* to be used in the rendering process. * to be used in the rendering process.
*
* @author James Seibel * @author James Seibel
* @version 10-10-2021 * @version 10-10-2021
*/ */
@@ -1,9 +1,34 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.util; package com.seibel.lod.util;
import java.awt.Color;
import net.minecraft.client.renderer.texture.NativeImage; import net.minecraft.client.renderer.texture.NativeImage;
import java.awt.*; /**
*
* @author Cola
* @author Leonardo Amato
* @version ??
*/
public class ColorUtil public class ColorUtil
{ {
public static int rgbToInt(int red, int green, int blue) public static int rgbToInt(int red, int green, int blue)
@@ -1,10 +1,35 @@
package com.seibel.lod.util; /*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import com.seibel.lod.enums.DistanceGenerationMode; package com.seibel.lod.util;
import net.minecraft.client.renderer.texture.NativeImage;
import static com.seibel.lod.builders.bufferBuilding.LodBufferBuilder.skyLightPlayer; import static com.seibel.lod.builders.bufferBuilding.LodBufferBuilder.skyLightPlayer;
import com.seibel.lod.enums.DistanceGenerationMode;
import net.minecraft.client.renderer.texture.NativeImage;
/**
*
* @author Leonardo Amato
* @version ??
*/
public class DataPointUtil public class DataPointUtil
{ {
/* /*
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.util; package com.seibel.lod.util;
import com.seibel.lod.config.LodConfig; import com.seibel.lod.config.LodConfig;
@@ -6,6 +25,11 @@ import com.seibel.lod.enums.HorizontalQuality;
import com.seibel.lod.enums.HorizontalResolution; import com.seibel.lod.enums.HorizontalResolution;
import com.seibel.lod.wrappers.MinecraftWrapper; import com.seibel.lod.wrappers.MinecraftWrapper;
/**
*
* @author Leonardo Amato
* @version ??
*/
public class DetailDistanceUtil public class DetailDistanceUtil
{ {
private static final double genMultiplier = 1.0; private static final double genMultiplier = 1.0;
@@ -1,5 +1,29 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.util; package com.seibel.lod.util;
/**
*
* @author Leonardo Amato
* @version ??
*/
public class LevelPosUtil public class LevelPosUtil
{ {
public static int[] convert(int[] levelPos, byte newDetailLevel) public static int[] convert(int[] levelPos, byte newDetailLevel)
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.util; package com.seibel.lod.util;
import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadFactory;
@@ -1,5 +1,6 @@
/* /*
* This file is part of the LOD Mod, licensed under the GNU GPL v3 License. * This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
* *
* Copyright (C) 2020 James Seibel * Copyright (C) 2020 James Seibel
* *
@@ -49,6 +50,7 @@ import net.minecraft.world.server.ServerWorld;
/** /**
* This class holds methods and constants that may be used in multiple places. * This class holds methods and constants that may be used in multiple places.
*
* @author James Seibel * @author James Seibel
* @version 10-13-2021 * @version 10-13-2021
*/ */
@@ -1,3 +1,22 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.util; package com.seibel.lod.util;
import static com.seibel.lod.util.LodUtil.DETAIL_OPTIONS; import static com.seibel.lod.util.LodUtil.DETAIL_OPTIONS;
@@ -16,6 +35,7 @@ import net.minecraft.util.Direction;
* Holds data used by specific threads so * Holds data used by specific threads so
* the data doesn't have to be recreated every * the data doesn't have to be recreated every
* time it is needed. * time it is needed.
*
* @author Leonardo Amato * @author Leonardo Amato
* @version 9-25-2021 * @version 9-25-2021
*/ */
@@ -1,6 +1,29 @@
/*
* This file is part of the Distant Horizon mod (formerly the LOD Mod),
* licensed under the GNU GPL v3 License.
*
* Copyright (C) 2020 James Seibel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.wrappers; package com.seibel.lod.wrappers;
import java.awt.Color;
import java.io.File;
import com.seibel.lod.util.LodUtil; import com.seibel.lod.util.LodUtil;
import net.minecraft.client.GameSettings; import net.minecraft.client.GameSettings;
import net.minecraft.client.MainWindow; import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@@ -19,12 +42,10 @@ import net.minecraft.server.integrated.IntegratedServer;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.world.DimensionType; import net.minecraft.world.DimensionType;
import java.awt.*;
import java.io.File;
/** /**
* A singleton that wraps the Minecraft class * A singleton that wraps the Minecraft class
* to allow for easier movement between Minecraft versions. * to allow for easier movement between Minecraft versions.
*
* @author James Seibel * @author James Seibel
* @version 9-16-2021 * @version 9-16-2021
*/ */