From d73d2bffc29e0ec73d5fb8d936a299d8029c2e7a Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Wed, 24 Aug 2022 11:28:26 +0800 Subject: [PATCH] provide api to mark particle as error we will probably need to have this render through the walls, but that's a task for later --- .../java/com/gtnewhorizon/structurelib/CommonProxy.java | 7 +++++++ .../com/gtnewhorizon/structurelib/StructureLibAPI.java | 8 ++++++++ .../structure/SurvivalBuildStructureWalker.java | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gtnewhorizon/structurelib/CommonProxy.java b/src/main/java/com/gtnewhorizon/structurelib/CommonProxy.java index 283ae93a..1c3dc273 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/CommonProxy.java +++ b/src/main/java/com/gtnewhorizon/structurelib/CommonProxy.java @@ -11,6 +11,9 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; public class CommonProxy { + + private static final short[] RGBA_RED_TINT = {255, 128, 128, 0}; + public void hintParticleTinted(World w, int x, int y, int z, IIcon[] icons, short[] RGBa) {} public void hintParticleTinted(World w, int x, int y, int z, Block block, int meta, short[] RGBa) {} @@ -51,4 +54,8 @@ public class CommonProxy { } public void uploadChannels(ItemStack trigger) {} + + public boolean markHintParticleError(EntityPlayer player, World w, int x, int y, int z) { + return updateHintParticleTint(player, w, x, y, z, RGBA_RED_TINT); + } } diff --git a/src/main/java/com/gtnewhorizon/structurelib/StructureLibAPI.java b/src/main/java/com/gtnewhorizon/structurelib/StructureLibAPI.java index 8e82e88e..19ec3099 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/StructureLibAPI.java +++ b/src/main/java/com/gtnewhorizon/structurelib/StructureLibAPI.java @@ -71,6 +71,14 @@ public class StructureLibAPI { proxy.hintParticle(w, x, y, z, block, meta); } + /** + * Update the tint of given hint particle. Do nothing if particle not found. + * @return false if nothing updated. true if updated. + */ + public static boolean markHintParticleError(EntityPlayer player, World w, int x, int y, int z) { + return proxy.markHintParticleError(player, w, x, y, z); + } + /** * Update the tint of given hint particle. Do nothing if particle not found. * @return false if nothing updated. true if updated. diff --git a/src/main/java/com/gtnewhorizon/structurelib/structure/SurvivalBuildStructureWalker.java b/src/main/java/com/gtnewhorizon/structurelib/structure/SurvivalBuildStructureWalker.java index b131e8ca..a8051cad 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/structure/SurvivalBuildStructureWalker.java +++ b/src/main/java/com/gtnewhorizon/structurelib/structure/SurvivalBuildStructureWalker.java @@ -37,7 +37,7 @@ class SurvivalBuildStructureWalker implements IStructureWalker { if (check) element.check(object, world, x, y, z); return ++built < elementBudget; case REJECT: - StructureLibAPI.updateHintParticleTint(actor, world, x, y, z, new short[] {255, 128, 128, 0}); + StructureLibAPI.markHintParticleError(actor, world, x, y, z); return false; case ACCEPT_STOP: if (check) element.check(object, world, x, y, z);