mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-26 18:39:20 +00:00
Merge remote-tracking branch 'refs/remotes/upstream/dev' into lamp
This commit is contained in:
@@ -5,7 +5,6 @@ import com.google.gson.JsonObject;
|
||||
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
import net.momirealms.craftengine.core.block.entity.render.BlockEntityElement;
|
||||
import net.momirealms.craftengine.core.block.entity.render.BlockEntityRenderer;
|
||||
import net.momirealms.craftengine.core.block.entity.render.BlockEntityRendererConfig;
|
||||
import net.momirealms.craftengine.core.block.properties.Properties;
|
||||
import net.momirealms.craftengine.core.block.properties.Property;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.momirealms.craftengine.core.entity.furniture;
|
||||
|
||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
|
||||
public class ItemSettings {
|
||||
int fuelTime;
|
||||
Set<Key> tags = Set.of();
|
||||
Tristate canRepair = Tristate.UNDEFINED;
|
||||
Repairable repairable = Repairable.UNDEFINED;
|
||||
List<AnvilRepairItem> anvilRepairItems = List.of();
|
||||
boolean renameable = true;
|
||||
boolean canPlaceRelatedVanillaBlock = false;
|
||||
@@ -89,7 +89,7 @@ public class ItemSettings {
|
||||
newSettings.fuelTime = settings.fuelTime;
|
||||
newSettings.tags = settings.tags;
|
||||
newSettings.equipment = settings.equipment;
|
||||
newSettings.canRepair = settings.canRepair;
|
||||
newSettings.repairable = settings.repairable;
|
||||
newSettings.anvilRepairItems = settings.anvilRepairItems;
|
||||
newSettings.renameable = settings.renameable;
|
||||
newSettings.canPlaceRelatedVanillaBlock = settings.canPlaceRelatedVanillaBlock;
|
||||
@@ -128,8 +128,8 @@ public class ItemSettings {
|
||||
return canPlaceRelatedVanillaBlock;
|
||||
}
|
||||
|
||||
public Tristate canRepair() {
|
||||
return canRepair;
|
||||
public Repairable repairable() {
|
||||
return repairable;
|
||||
}
|
||||
|
||||
public int fuelTime() {
|
||||
@@ -233,8 +233,8 @@ public class ItemSettings {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemSettings canRepair(Tristate canRepair) {
|
||||
this.canRepair = canRepair;
|
||||
public ItemSettings repairable(Repairable repairable) {
|
||||
this.repairable = repairable;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -315,8 +315,14 @@ public class ItemSettings {
|
||||
|
||||
static {
|
||||
registerFactory("repairable", (value -> {
|
||||
boolean bool = ResourceConfigUtils.getAsBoolean(value, "repairable");
|
||||
return settings -> settings.canRepair(bool ? Tristate.TRUE : Tristate.FALSE);
|
||||
if (value instanceof Map<?,?> mapValue) {
|
||||
Map<String, Object> repairableData = ResourceConfigUtils.getAsMap(mapValue, "repairable");
|
||||
Repairable repairable = Repairable.fromMap(repairableData);
|
||||
return settings -> settings.repairable(repairable);
|
||||
} else {
|
||||
boolean bool = ResourceConfigUtils.getAsBoolean(value, "repairable");
|
||||
return settings -> settings.repairable(bool ? Repairable.TRUE : Repairable.FALSE);
|
||||
}
|
||||
}));
|
||||
registerFactory("enchantable", (value -> {
|
||||
boolean bool = ResourceConfigUtils.getAsBoolean(value, "enchantable");
|
||||
|
||||
@@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.item.ItemBuildContext;
|
||||
import net.momirealms.craftengine.core.item.ItemDataModifierFactory;
|
||||
import net.momirealms.craftengine.core.util.Color;
|
||||
import net.momirealms.craftengine.core.util.Key;
|
||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package net.momirealms.craftengine.core.item.setting;
|
||||
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
import net.momirealms.craftengine.core.util.Tristate;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public record Repairable(Tristate craftingTable, Tristate anvilRepair, Tristate anvilCombine) {
|
||||
|
||||
public static final Repairable UNDEFINED = new Repairable(Tristate.UNDEFINED, Tristate.UNDEFINED, Tristate.UNDEFINED);
|
||||
public static final Repairable TRUE = new Repairable(Tristate.TRUE, Tristate.TRUE, Tristate.TRUE);
|
||||
public static final Repairable FALSE = new Repairable(Tristate.FALSE, Tristate.FALSE, Tristate.FALSE);
|
||||
|
||||
public static Repairable fromMap(Map<String, Object> map) {
|
||||
Tristate craftingTable = map.containsKey("crafting-table") ? Tristate.of(ResourceConfigUtils.getAsBoolean(map.get("crafting-table"), "crafting-table")) : Tristate.UNDEFINED;
|
||||
Tristate anvilRepair = map.containsKey("anvil-repair") ? Tristate.of(ResourceConfigUtils.getAsBoolean(map.get("anvil-repair"), "anvil-repair")) : Tristate.UNDEFINED;
|
||||
Tristate anvilCombine = map.containsKey("anvil-combine") ? Tristate.of(ResourceConfigUtils.getAsBoolean(map.get("anvil-combine"), "anvil-combine")) : Tristate.UNDEFINED;
|
||||
return new Repairable(craftingTable, anvilRepair, anvilCombine);
|
||||
}
|
||||
}
|
||||
@@ -1855,9 +1855,13 @@ public abstract class AbstractPackManager implements PackManager {
|
||||
}
|
||||
JsonArray overrides = new JsonArray();
|
||||
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
|
||||
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
|
||||
if (legacyOverridesModel.hasPredicate()) {
|
||||
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
|
||||
}
|
||||
}
|
||||
if (!overrides.isEmpty()) {
|
||||
itemJson.add("overrides", overrides);
|
||||
}
|
||||
itemJson.add("overrides", overrides);
|
||||
} catch (IOException e) {
|
||||
this.plugin.logger().warn("Failed to read item json " + itemPath.toAbsolutePath());
|
||||
continue;
|
||||
@@ -1865,13 +1869,31 @@ public abstract class AbstractPackManager implements PackManager {
|
||||
} else {
|
||||
// 如果路径不存在,则需要我们创建一个json对象,并对接model的路径
|
||||
itemJson = new JsonObject();
|
||||
LegacyOverridesModel firstModel = legacyOverridesModels.getFirst();
|
||||
itemJson.addProperty("parent", firstModel.model());
|
||||
JsonArray overrides = new JsonArray();
|
||||
|
||||
LegacyOverridesModel firstBaseModel = null;
|
||||
List<JsonObject> overrideJsons = new ArrayList<>();
|
||||
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
|
||||
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
|
||||
if (!legacyOverridesModel.hasPredicate()) {
|
||||
if (firstBaseModel == null) {
|
||||
firstBaseModel = legacyOverridesModel;
|
||||
}
|
||||
} else {
|
||||
JsonObject legacyPredicateElement = legacyOverridesModel.toLegacyPredicateElement();
|
||||
overrideJsons.add(legacyPredicateElement);
|
||||
}
|
||||
}
|
||||
if (firstBaseModel == null) {
|
||||
firstBaseModel = legacyOverridesModels.getFirst();
|
||||
}
|
||||
|
||||
itemJson.addProperty("parent", firstBaseModel.model());
|
||||
if (!overrideJsons.isEmpty()) {
|
||||
JsonArray overrides = new JsonArray();
|
||||
for (JsonObject override : overrideJsons) {
|
||||
overrides.add(override);
|
||||
}
|
||||
itemJson.add("overrides", overrides);
|
||||
}
|
||||
itemJson.add("overrides", overrides);
|
||||
}
|
||||
try {
|
||||
Files.createDirectories(itemPath.getParent());
|
||||
|
||||
@@ -27,7 +27,7 @@ public class LegacyOverridesModel implements Comparable<LegacyOverridesModel> {
|
||||
}
|
||||
|
||||
public boolean hasPredicate() {
|
||||
return !predicate.isEmpty();
|
||||
return predicate != null && !predicate.isEmpty();
|
||||
}
|
||||
|
||||
public String model() {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.momirealms.craftengine.core.pack.model.generation.display;
|
||||
|
||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package net.momirealms.craftengine.core.util;
|
||||
|
||||
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class MiscUtils {
|
||||
|
||||
Reference in New Issue
Block a user