9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2026-01-04 15:41:38 +00:00

自定义哪些方块支持deceive

This commit is contained in:
XiaoMoMi
2025-10-23 21:31:38 +08:00
parent 21a89a818b
commit efb45c2325
4 changed files with 64 additions and 30 deletions

View File

@@ -126,7 +126,8 @@ public class Config {
protected int block$predict_breaking_interval;
protected double block$extended_interaction_range;
protected boolean block$chunk_relighter;
protected Key block$deceive_bukkit_material;
protected Key block$deceive_bukkit_material$default;
protected Map<Integer, Key> block$deceive_bukkit_material$overrides;
protected int block$serverside_blocks = -1;
protected boolean recipe$enable;
@@ -250,6 +251,7 @@ public class Config {
.addIgnoredRoute(PluginProperties.getValue("config"), "chunk-system.process-invalid-blocks.convert", '.')
.addIgnoredRoute(PluginProperties.getValue("config"), "chunk-system.process-invalid-furniture.convert", '.')
.addIgnoredRoute(PluginProperties.getValue("config"), "item.custom-model-data-starting-value.overrides", '.')
.addIgnoredRoute(PluginProperties.getValue("config"), "block.deceive-bukkit-material.overrides", '.')
.build());
}
try {
@@ -439,8 +441,25 @@ public class Config {
block$predict_breaking_interval = Math.max(config.getInt("block.predict-breaking.interval", 10), 1);
block$extended_interaction_range = Math.max(config.getDouble("block.predict-breaking.extended-interaction-range", 0.5), 0.0);
block$chunk_relighter = config.getBoolean("block.chunk-relighter", true);
block$deceive_bukkit_material = Key.of(config.getString("block.deceive-bukkit-material", "stone"));
if (firstTime) {
block$deceive_bukkit_material$default = Key.of(config.getString("block.deceive-bukkit-material.default", "bricks"));
block$deceive_bukkit_material$overrides = new HashMap<>();
Section overridesSection = config.getSection("block.deceive-bukkit-material.overrides");
if (overridesSection != null) {
for (Map.Entry<String, Object> entry : overridesSection.getStringRouteMappedValues(false).entrySet()) {
String key = entry.getKey();
Key value = Key.of(String.valueOf(entry.getValue()));
if (key.contains("~")) {
int min = Integer.parseInt(key.split("~")[0]);
int max = Integer.parseInt(key.split("~")[1]);
for (int i = min; i <= max; i++) {
block$deceive_bukkit_material$overrides.put(i, value);
}
} else {
block$deceive_bukkit_material$overrides.put(Integer.valueOf(key), value);
}
}
}
block$serverside_blocks = Math.min(config.getInt("block.serverside-blocks", 2000), 10_0000);
if (block$serverside_blocks < 0) block$serverside_blocks = 0;
}
@@ -774,8 +793,8 @@ public class Config {
return instance.resource_pack$protection$obfuscation$resource_location$bypass_equipments;
}
public static Key deceiveBukkitMaterial() {
return instance.block$deceive_bukkit_material;
public static Key deceiveBukkitMaterial(int id) {
return instance.block$deceive_bukkit_material$overrides.getOrDefault(id, instance.block$deceive_bukkit_material$default);
}
public static boolean generateModAssets() {