9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-28 19:39:11 +00:00

添加新模板

This commit is contained in:
XiaoMoMi
2025-06-13 17:59:23 +08:00
parent 069be96fd3
commit ff4e1754c5
4 changed files with 50 additions and 11 deletions

View File

@@ -478,6 +478,10 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
boolean value = TypeUtils.checkType(obj, Boolean.class);
return new UnbreakableModifier<>(value);
}, "unbreakable");
registerDataType((obj) -> {
int customModelData = ResourceConfigUtils.getAsInt(obj, "custom-model-data");
return new CustomModelDataModifier<>(customModelData);
}, "custom-model-data");
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
List<Enchantment> enchantments = new ArrayList<>();
@@ -494,6 +498,14 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
String pattern = data.get("pattern").toString().toLowerCase(Locale.ENGLISH);
return new TrimModifier<>(material, pattern);
}, "trim");
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
Map<String, TextProvider> arguments = new HashMap<>();
for (Map.Entry<String, Object> entry : data.entrySet()) {
arguments.put(entry.getKey(), TextProviders.fromString(entry.getValue().toString()));
}
return new ArgumentModifier<>(arguments);
}, "args", "argument", "arguments");
if (VersionHelper.isOrAbove1_20_5()) {
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
@@ -521,21 +533,15 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
String id = obj.toString();
return new TooltipStyleModifier<>(Key.of(id));
}, "tooltip-style");
}
if (VersionHelper.isOrAbove1_21_2()) {
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
return new EquippableModifier<>(EquipmentData.fromMap(data));
}, "equippable");
registerDataType((obj) -> {
String id = obj.toString();
return new ItemModelModifier<>(Key.of(id));
}, "item-model");
}
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
Map<String, TextProvider> arguments = new HashMap<>();
for (Map.Entry<String, Object> entry : data.entrySet()) {
arguments.put(entry.getKey(), TextProviders.fromString(entry.getValue().toString()));
}
return new ArgumentModifier<>(arguments);
}, "args", "argument", "arguments");
}
protected void processModelRecursively(

View File

@@ -36,6 +36,7 @@ public class ItemSettings {
Key consumeReplacement = null;
Key craftRemainder = null;
List<DamageSource> invulnerable = List.of();
boolean canEnchant = true;
private ItemSettings() {}
@@ -75,6 +76,7 @@ public class ItemSettings {
newSettings.consumeReplacement = settings.consumeReplacement;
newSettings.craftRemainder = settings.craftRemainder;
newSettings.invulnerable = settings.invulnerable;
newSettings.canEnchant = settings.canEnchant;
return newSettings;
}
@@ -118,6 +120,10 @@ public class ItemSettings {
return dyeable;
}
public boolean canEnchant() {
return canEnchant;
}
public List<AnvilRepairItem> repairItems() {
return anvilRepairItems;
}
@@ -171,6 +177,11 @@ public class ItemSettings {
return this;
}
public ItemSettings canEnchant(boolean canEnchant) {
this.canEnchant = canEnchant;
return this;
}
public ItemSettings renameable(boolean renameable) {
this.renameable = renameable;
return this;
@@ -241,6 +252,10 @@ public class ItemSettings {
boolean bool = (boolean) value;
return settings -> settings.canRepair(bool);
}));
registerFactory("enchantable", (value -> {
boolean bool = (boolean) value;
return settings -> settings.canEnchant(bool);
}));
registerFactory("renameable", (value -> {
boolean bool = (boolean) value;
return settings -> settings.renameable(bool);