From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samsuik <40902469+Samsuik@users.noreply.github.com> Date: Wed, 29 Nov 2023 22:11:36 +0000 Subject: [PATCH] Add redstone implementation API diff --git a/src/main/java/me/samsuik/sakura/local/LocalValueKey.java b/src/main/java/me/samsuik/sakura/local/LocalValueKey.java index 8a688431aaa56166afd2c95731220c0aba2147ed..346f6392c82ff27ec4439c645948337ce1832ba3 100644 --- a/src/main/java/me/samsuik/sakura/local/LocalValueKey.java +++ b/src/main/java/me/samsuik/sakura/local/LocalValueKey.java @@ -1,6 +1,7 @@ package me.samsuik.sakura.local; import me.samsuik.sakura.physics.PhysicsVersion; +import me.samsuik.sakura.redstone.RedstoneImplementation; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.jspecify.annotations.NullMarked; @@ -20,6 +21,10 @@ public record LocalValueKey(NamespacedKey key, Supplier defaultSupplier) { new NamespacedKey("sakura", "durable-materials"), HashMap::new ); + public static final LocalValueKey REDSTONE_IMPLEMENTATION = new LocalValueKey<>( + new NamespacedKey("sakura", "redstone-implementation"), () -> RedstoneImplementation.VANILLA + ); + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/me/samsuik/sakura/redstone/RedstoneImplementation.java b/src/main/java/me/samsuik/sakura/redstone/RedstoneImplementation.java new file mode 100644 index 0000000000000000000000000000000000000000..bfb5e9ec99dfdd6f4664ddb8191496706bc0d2a1 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/redstone/RedstoneImplementation.java @@ -0,0 +1,20 @@ +package me.samsuik.sakura.redstone; + +import org.jspecify.annotations.NullMarked; + +@NullMarked +public enum RedstoneImplementation { + VANILLA("vanilla"), + EIGENCRAFT("eigencraft"), + ALTERNATE_CURRENT("alternate-current"); + + private final String friendlyName; + + RedstoneImplementation(String friendlyName) { + this.friendlyName = friendlyName; + } + + public String getFriendlyName() { + return this.friendlyName; + } +}