From 8334e64ea95464d1e876ece2c69296839f074e8b Mon Sep 17 00:00:00 2001 From: AntoineHu/Stahl Date: Fri, 3 Mar 2023 20:55:51 +0200 Subject: [PATCH 1/2] Minimal changes to make VSHUD work in 1.18-pre.3. Also .NET to v4.8. --- .gitignore | 9 ++++++++ BlockAnimTest/BlockAnimTest.csproj | 3 ++- BlockPhysics/StandaloneBlockPhysics.csproj | 3 ++- CivMods/CivMods.csproj | 3 ++- .../Collectible Exchange.csproj | 3 ++- CustomGLSetter/CustomGLSetter.csproj | 3 ++- CustomGLSetter/app.config | 14 ++++++------ CustomMeshMod/CustomMeshMod.csproj | 3 ++- DeepOreBits/DeepOreBits.csproj | 3 ++- GravelSandFix/GravelSandFix.csproj | 3 ++- HarvestCraftLoader/HarvestCraftLoader.csproj | 2 +- Instruments/Instruments.csproj | 3 ++- ItemSorting/ItemSorting.csproj | 3 ++- JarLoaderTest/JarLoaderTest.csproj | 2 +- LightingForReshade/LightingForReshade.csproj | 2 +- RandomTests/RandomTests.csproj | 2 +- ShaderLoader/Shaders.csproj | 2 +- SwingingDoorMod/SwingingDoorMod.csproj | 3 ++- VSHUD/Renderer/PlacementRenderer.cs | 21 +++++++++--------- VSHUD/Systems/Patches/ChunkPartGrabber.cs | 4 ++-- VSHUD/Utility/Extensions.cs | 13 +++++------ VSHUD/VSHUD.csproj | 5 +++-- VSHUD/VSHUDMain.cs | 4 ++-- VSHUD/mods/VSHUD.dll | Bin 161792 -> 162304 bytes WorldGenTests/WorldGenTests.csproj | 3 ++- 25 files changed, 68 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index cc44a45..f3d335e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,12 @@ +usefulstuff*.csproj +usefulstuff*.csproj.user +usefulstuff*.dll +usefulstuff*.pdb +screenshots +/bin/Debug Normal +/obj/Debug Normal + + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. diff --git a/BlockAnimTest/BlockAnimTest.csproj b/BlockAnimTest/BlockAnimTest.csproj index e3fc6e1..774a59a 100644 --- a/BlockAnimTest/BlockAnimTest.csproj +++ b/BlockAnimTest/BlockAnimTest.csproj @@ -9,9 +9,10 @@ Properties BlockAnimTest BlockAnimTest - v4.5.2 + v4.8 512 true + true diff --git a/BlockPhysics/StandaloneBlockPhysics.csproj b/BlockPhysics/StandaloneBlockPhysics.csproj index 065f1eb..2168e20 100644 --- a/BlockPhysics/StandaloneBlockPhysics.csproj +++ b/BlockPhysics/StandaloneBlockPhysics.csproj @@ -9,9 +9,10 @@ Properties StandAloneBlockPhysics BlockPhysics - v4.5.2 + v4.8 512 true + true diff --git a/CivMods/CivMods.csproj b/CivMods/CivMods.csproj index 18c0457..4fb135e 100644 --- a/CivMods/CivMods.csproj +++ b/CivMods/CivMods.csproj @@ -9,9 +9,10 @@ Properties CivMods CivMods - v4.5.2 + v4.8 512 true + true diff --git a/Collectible Exchange/Collectible Exchange.csproj b/Collectible Exchange/Collectible Exchange.csproj index 20c0c2e..66f76a3 100644 --- a/Collectible Exchange/Collectible Exchange.csproj +++ b/Collectible Exchange/Collectible Exchange.csproj @@ -9,9 +9,10 @@ Properties Collectible_Exchange Collectible Exchange - v4.5.2 + v4.8 512 true + true diff --git a/CustomGLSetter/CustomGLSetter.csproj b/CustomGLSetter/CustomGLSetter.csproj index a13de90..79df994 100644 --- a/CustomGLSetter/CustomGLSetter.csproj +++ b/CustomGLSetter/CustomGLSetter.csproj @@ -9,7 +9,7 @@ Properties CustomGLSetter CustomGLSetter - v4.5.2 + v4.8 512 true publish\ @@ -27,6 +27,7 @@ false false true + true diff --git a/CustomGLSetter/app.config b/CustomGLSetter/app.config index 6a33c1c..f9bfadc 100644 --- a/CustomGLSetter/app.config +++ b/CustomGLSetter/app.config @@ -1,18 +1,18 @@ - + - - + + - - + + - + - \ No newline at end of file + diff --git a/CustomMeshMod/CustomMeshMod.csproj b/CustomMeshMod/CustomMeshMod.csproj index c091d0e..1877234 100644 --- a/CustomMeshMod/CustomMeshMod.csproj +++ b/CustomMeshMod/CustomMeshMod.csproj @@ -9,11 +9,12 @@ Properties CustomMeshMod CustomMeshMod - v4.5.2 + v4.8 512 true + true diff --git a/DeepOreBits/DeepOreBits.csproj b/DeepOreBits/DeepOreBits.csproj index 3115683..1bd1cf7 100644 --- a/DeepOreBits/DeepOreBits.csproj +++ b/DeepOreBits/DeepOreBits.csproj @@ -9,9 +9,10 @@ Properties DeepOreBits DeepOreBits - v4.5.2 + v4.8 512 true + true diff --git a/GravelSandFix/GravelSandFix.csproj b/GravelSandFix/GravelSandFix.csproj index ce250d0..2157f68 100644 --- a/GravelSandFix/GravelSandFix.csproj +++ b/GravelSandFix/GravelSandFix.csproj @@ -9,9 +9,10 @@ Properties GravelSandFix GravelSandFix - v4.6.1 + v4.8 512 true + true diff --git a/HarvestCraftLoader/HarvestCraftLoader.csproj b/HarvestCraftLoader/HarvestCraftLoader.csproj index 8f8e0b0..841e01c 100644 --- a/HarvestCraftLoader/HarvestCraftLoader.csproj +++ b/HarvestCraftLoader/HarvestCraftLoader.csproj @@ -9,7 +9,7 @@ Properties HarvestCraftLoader HarvestCraftLoader - v4.6.1 + v4.8 512 true diff --git a/Instruments/Instruments.csproj b/Instruments/Instruments.csproj index 110a710..ad4df2f 100644 --- a/Instruments/Instruments.csproj +++ b/Instruments/Instruments.csproj @@ -9,9 +9,10 @@ Properties Instruments Instruments - v4.5.2 + v4.8 512 true + true diff --git a/ItemSorting/ItemSorting.csproj b/ItemSorting/ItemSorting.csproj index a626343..4d5b768 100644 --- a/ItemSorting/ItemSorting.csproj +++ b/ItemSorting/ItemSorting.csproj @@ -9,9 +9,10 @@ Properties ItemSorting ItemSorting - v4.5.2 + v4.8 512 true + true diff --git a/JarLoaderTest/JarLoaderTest.csproj b/JarLoaderTest/JarLoaderTest.csproj index f5e5db0..e83f3c4 100644 --- a/JarLoaderTest/JarLoaderTest.csproj +++ b/JarLoaderTest/JarLoaderTest.csproj @@ -9,7 +9,7 @@ Properties JarLoader JarLoader - v4.6.1 + v4.8 512 true diff --git a/LightingForReshade/LightingForReshade.csproj b/LightingForReshade/LightingForReshade.csproj index f59f67a..b773dc0 100644 --- a/LightingForReshade/LightingForReshade.csproj +++ b/LightingForReshade/LightingForReshade.csproj @@ -9,7 +9,7 @@ Properties LightingForReshade LightingForReshade - v4.6.1 + v4.8 512 true diff --git a/RandomTests/RandomTests.csproj b/RandomTests/RandomTests.csproj index ed5cf09..170d802 100644 --- a/RandomTests/RandomTests.csproj +++ b/RandomTests/RandomTests.csproj @@ -9,7 +9,7 @@ Properties RandomTests RandomTests - v4.6.2 + v4.8 512 true diff --git a/ShaderLoader/Shaders.csproj b/ShaderLoader/Shaders.csproj index 147d26b..9fab8fa 100644 --- a/ShaderLoader/Shaders.csproj +++ b/ShaderLoader/Shaders.csproj @@ -6,7 +6,7 @@ Library false OthographicShadersLoader - v4.5.2 + v4.8 512 diff --git a/SwingingDoorMod/SwingingDoorMod.csproj b/SwingingDoorMod/SwingingDoorMod.csproj index 6e4eb90..6600ae9 100644 --- a/SwingingDoorMod/SwingingDoorMod.csproj +++ b/SwingingDoorMod/SwingingDoorMod.csproj @@ -9,11 +9,12 @@ Properties SwingingDoorMod SwingingDoorMod - v4.5.2 + v4.8 512 true + true diff --git a/VSHUD/Renderer/PlacementRenderer.cs b/VSHUD/Renderer/PlacementRenderer.cs index c53f8a5..34b6533 100644 --- a/VSHUD/Renderer/PlacementRenderer.cs +++ b/VSHUD/Renderer/PlacementRenderer.cs @@ -24,7 +24,7 @@ class PlacementRenderer : IRenderer VSHUDConfig config { get => capi.ModLoader.GetModSystem().Config; } ShapeTesselatorManager tesselatormanager { get => capi.TesselatorManager as ShapeTesselatorManager; } bool shouldDispose = true; - + List NonCulledTypes { get; set; } List IgnoredTypes { get; set; } List SneakPlacedTypes { get; set; } @@ -66,7 +66,7 @@ public PlacementRenderer(ICoreClientAPI capi) }; } - public Block GetInvBlock() + public Block GetInvBlock() { Block block = invStack?.Block; if (block == null && invItem != null) @@ -108,7 +108,7 @@ public void UpdateBlockMesh(Block toBlock, BlockPos altPos) } else if (toBlock is BlockChisel) { - mRef = capi.ModLoader.GetModSystem().GetOrCreateMeshRef(invStack); + mRef = capi.ModLoader.GetModSystem().GetOrCreateMeshRef(invStack); shouldDispose = false; return; } @@ -133,7 +133,7 @@ public void UpdateBlockMesh(Block toBlock, BlockPos altPos) mesh.CompactBuffers(); } else - { + { mesh = lod1; mesh.IndicesMax = mesh.Indices.Count(); if (lod0 != null) @@ -157,7 +157,7 @@ public void UpdateBlockMesh(Block toBlock, BlockPos altPos) if (mRef != null && shouldDispose) mRef.Dispose(); shouldDispose = true; MeshData rotMesh = mesh.Clone().Rotate(new Vec3f(0.5f, 0.5f, 0.5f), 0, toBlock.GetRotY(playerPos, playerSelection), 0); - + mRef = rpi.UploadMesh(rotMesh); } @@ -200,12 +200,12 @@ public void OnRenderFrame(float deltaTime, EnumRenderStage stage) toBlock = capi.World.BlockAccessor.GetBlock(SetBlockRedirectMaster.blockId); if (toBlock == null || toBlock.Id == 0) return; - + BlockPos adjPos = selClone.Position; UpdateBlockMesh(toBlock, adjPos); if (mRef == null) return; - + if (!capi.World.BlockAccessor.GetBlock(adjPos).IsReplacableBy(invBlock)) return; rpi.GlToggleBlend(true); @@ -214,14 +214,15 @@ public void OnRenderFrame(float deltaTime, EnumRenderStage stage) Vec2f offset = adjPos.GetOffset(toBlock); IStandardShaderProgram prog = rpi.PreparedStandardShader(adjPos.X, adjPos.Y, adjPos.Z); - prog.Tex2D = capi.BlockTextureAtlas.AtlasTextureIds[0]; + //prog.Tex2D = capi.BlockTextureAtlas.AtlasTextureIds[0]; capi.BlockTextureAtlas.AtlasTextures[0] + prog.Tex2D = capi.BlockTextureAtlas.AtlasTextures[0].TextureId; prog.ModelMatrix = ModelMat .Identity() .Translate(adjPos.X - camPos.X, adjPos.Y - camPos.Y, adjPos.Z - camPos.Z) .Translate(offset.X, 0, offset.Y) .Values; - + prog.ViewMatrix = rpi.CameraMatrixOriginf; prog.ProjectionMatrix = rpi.CurrentProjectionMatrix; Vec4f col = new Vec4f(1.0f, 1.0f, 1.0f, config.PROpacity); @@ -230,7 +231,7 @@ public void OnRenderFrame(float deltaTime, EnumRenderStage stage) { col.Add(new Vec4f(config.PRTintColor[0], config.PRTintColor[1], config.PRTintColor[2], 0.0f)); } - + prog.SsaoAttn = 0; prog.AlphaTest = 0.05f; prog.RgbaTint = new Vec4f(col.R, col.G, col.B, config.PROpacity); diff --git a/VSHUD/Systems/Patches/ChunkPartGrabber.cs b/VSHUD/Systems/Patches/ChunkPartGrabber.cs index 96d4fe5..5cf10ea 100644 --- a/VSHUD/Systems/Patches/ChunkPartGrabber.cs +++ b/VSHUD/Systems/Patches/ChunkPartGrabber.cs @@ -31,7 +31,7 @@ public override void StartClientSide(ICoreClientAPI api) for (int i = 0; i < mgr.Atlasses.Count; i++) { - mgr.Atlasses[i].Export(Path.Combine(path, "blockAtlas-" + i), game, mgr.AtlasTextureIds[i]); + mgr.Atlasses[i].Export(Path.Combine(path, "blockAtlas-" + i), game, mgr.AtlasTextures[i].TextureId); } fileExport = api.VSHUD().fileExport; @@ -61,7 +61,7 @@ public static void PushToStack(MeshData mesh, int chunkX, int chunkY, int chunkZ grabber.fileExport.Push(new ExportableChunkPart(mesh, filePath, fileName, id)); } - + public static void Postfix(ChunkTesselator __instance, int chunkX, int chunkY, int chunkZ, TesselatedChunk tessChunk) { if (!Process) return; diff --git a/VSHUD/Utility/Extensions.cs b/VSHUD/Utility/Extensions.cs index 87f6d9c..da2d94f 100644 --- a/VSHUD/Utility/Extensions.cs +++ b/VSHUD/Utility/Extensions.cs @@ -182,10 +182,7 @@ public static BlockEntity BlockEntity(this BlockSelection sel, IWorldAccessor wo public static void InitializeAnimators(this BlockEntityAnimationUtil util, Vec3f rot, params string[] CacheDictKeys ) { - foreach (var val in CacheDictKeys) - { - util.InitializeAnimator(val, rot); - } + util.InitializeAnimators(rot, CacheDictKeys); } public static void InitializeAnimators(this BlockEntityAnimationUtil util, Vec3f rot, List CacheDictKeys) @@ -300,7 +297,7 @@ public static Vec2f GetOffset(this BlockPos pos, Block block) public static float GetRotY(this Block block, Vec3d entityPos, BlockSelection blockSel) { BlockPos targetPos = blockSel.DidOffset ? blockSel.Position.AddCopy(blockSel.Face.Opposite) : blockSel.Position; - + if (targetPos != null) { if (block is BlockAnvil) @@ -509,7 +506,7 @@ public static Thread InjectClientThread(this IClientWorldAccessor world, string List clientThreads = (world as ClientMain).GetField>("clientThreads"); Stack vanillaSystems = new Stack((world as ClientMain).GetField("clientSystems")); - + foreach (var system in systems) { vanillaSystems.Push(system); @@ -522,9 +519,9 @@ public static Thread InjectClientThread(this IClientWorldAccessor world, string IsBackground = true, Name = name }; - + thread.Start(); - + clientThreads.Add(thread); return thread; diff --git a/VSHUD/VSHUD.csproj b/VSHUD/VSHUD.csproj index 83e0f4f..8eebc13 100644 --- a/VSHUD/VSHUD.csproj +++ b/VSHUD/VSHUD.csproj @@ -9,7 +9,7 @@ Properties VSHUD VSHUD - v4.6.1 + v4.8 512 true @@ -172,6 +172,7 @@ - call "$(ProjectDir)\package.bat" + + \ No newline at end of file diff --git a/VSHUD/VSHUDMain.cs b/VSHUD/VSHUDMain.cs index 87dcbd6..c51beea 100644 --- a/VSHUD/VSHUDMain.cs +++ b/VSHUD/VSHUDMain.cs @@ -9,14 +9,14 @@ Side = "Client", Authors = new[] { "Novocain" }, IconPath = "creative/textures/block/command01-inside.png", - Version = "2.1.2")] + Version = "2.2.0")] namespace VSHUD { public class VSHUDMain : ClientModSystem { ICoreClientAPI capi; - + public MassFileExportSystem fileExport; public VSHUDTaskSystem taskSystem; diff --git a/VSHUD/mods/VSHUD.dll b/VSHUD/mods/VSHUD.dll index 014dfbacd02b53993bb1b7c62cc31043c0028eff..9fb57294ca34b01cacdaf00e0107d323aa6d7547 100644 GIT binary patch delta 54508 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 p)2+>0B+8ZXxe}VxBJA8eB%J!e*^7qW32!H delta 54225 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ÏR-g4b4O_)*mBlVLBS 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 diff --git a/WorldGenTests/WorldGenTests.csproj b/WorldGenTests/WorldGenTests.csproj index d2f22c0..38a784a 100644 --- a/WorldGenTests/WorldGenTests.csproj +++ b/WorldGenTests/WorldGenTests.csproj @@ -9,9 +9,10 @@ Properties OreVeins OreVeins - v4.6.1 + v4.8 512 true + true From 89328b6f1e69e8e73f4391f592de35c1b56bd3d4 Mon Sep 17 00:00:00 2001 From: AntoineHu/Stahl Date: Tue, 28 Mar 2023 20:33:01 +0300 Subject: [PATCH 2/2] Started rewriting registering chat commands using the ChatCommand API. --- VSHUD/Commands/CommandPlacementPreview.cs | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/VSHUD/Commands/CommandPlacementPreview.cs b/VSHUD/Commands/CommandPlacementPreview.cs index 3ffc411..520e84a 100644 --- a/VSHUD/Commands/CommandPlacementPreview.cs +++ b/VSHUD/Commands/CommandPlacementPreview.cs @@ -1,10 +1,43 @@ using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Common.CommandAbbr; using Vintagestory.API.MathTools; namespace VSHUD { public class CommandPlacementPreview : VSHUDCommand { + + protected void RegisterCommands(ICoreClientAPI capi) + { + var parsers = capi.ChatCommands.Parsers; + + capi.ChatCommands + .GetOrCreate("pconfig") + .IgnoreAdditionalArgs() + .WithDesc("Configure placement preview.") + .HandleWith(_ => TextCommandResult.Error("Specify subcommand.")) + .BeginSub("show") + .WithDesc("Switches placement preview on/off") + .WithArgs(parsers.OptionalBool("on/off")) + .HandleWith(TogglePlacementPreview) + .EndSub() + .BeginSub("tint") + .WithDesc("Switches tinting placement preview meshes on/off") + .WithArgs(parsers.OptionalBool("on/off")) + .HandleWith(TogglePlacementPreviewTint) + .EndSub(); + } + private TextCommandResult TogglePlacementPreview(TextCommandCallingArgs args) + { + Config.PRShow = (args.Parsers[0].IsMissing) ? !Config.PRShow : (bool)args[0]; + return TextCommandResult.Success($"Block placement preview set to {Config.PRShow}."); + } + private TextCommandResult TogglePlacementPreviewTint(TextCommandCallingArgs args) + { + Config.PRTint = (args.Parsers[0].IsMissing) ? !Config.PRTint : (bool)args[0]; + return TextCommandResult.Success($"Block placement preview set to {Config.PRTint}."); + } public CommandPlacementPreview(ICoreClientAPI capi) : base(capi) { Command = "pconfig";