mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2026-01-06 15:52:03 +00:00
Merge branch 'Xiao-MoMi:dev' into dev
This commit is contained in:
@@ -20,7 +20,6 @@ import net.momirealms.craftengine.core.world.BlockPos;
|
|||||||
import net.momirealms.craftengine.core.world.Vec3d;
|
import net.momirealms.craftengine.core.world.Vec3d;
|
||||||
import net.momirealms.sparrow.nbt.CompoundTag;
|
import net.momirealms.sparrow.nbt.CompoundTag;
|
||||||
import net.momirealms.sparrow.nbt.ListTag;
|
import net.momirealms.sparrow.nbt.ListTag;
|
||||||
import net.momirealms.sparrow.nbt.Tag;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameEvent;
|
import org.bukkit.GameEvent;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@@ -31,7 +30,6 @@ import org.bukkit.util.Vector;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class SimpleStorageBlockEntity extends BlockEntity {
|
public class SimpleStorageBlockEntity extends BlockEntity {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import net.momirealms.craftengine.core.entity.furniture.*;
|
|||||||
import net.momirealms.craftengine.core.plugin.config.Config;
|
import net.momirealms.craftengine.core.plugin.config.Config;
|
||||||
import net.momirealms.craftengine.core.sound.SoundData;
|
import net.momirealms.craftengine.core.sound.SoundData;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||||
import net.momirealms.craftengine.core.world.WorldPosition;
|
import net.momirealms.craftengine.core.world.WorldPosition;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.NetworkRefl
|
|||||||
import net.momirealms.craftengine.core.entity.furniture.*;
|
import net.momirealms.craftengine.core.entity.furniture.*;
|
||||||
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
|
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||||
import net.momirealms.craftengine.core.world.WorldPosition;
|
import net.momirealms.craftengine.core.world.WorldPosition;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MEntityType
|
|||||||
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.NetworkReflections;
|
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.NetworkReflections;
|
||||||
import net.momirealms.craftengine.core.entity.furniture.*;
|
import net.momirealms.craftengine.core.entity.furniture.*;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||||
import net.momirealms.craftengine.core.world.World;
|
import net.momirealms.craftengine.core.world.World;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflect
|
|||||||
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MEntityTypes;
|
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MEntityTypes;
|
||||||
import net.momirealms.craftengine.core.entity.furniture.*;
|
import net.momirealms.craftengine.core.entity.furniture.*;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import net.momirealms.craftengine.core.world.Vec3d;
|
import net.momirealms.craftengine.core.world.Vec3d;
|
||||||
import net.momirealms.craftengine.core.world.WorldPosition;
|
import net.momirealms.craftengine.core.world.WorldPosition;
|
||||||
|
|||||||
@@ -190,7 +190,6 @@ public class UniversalItemFactory extends BukkitItemFactory<LegacyItemWrapper> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void maxDamage(LegacyItemWrapper item, Integer damage) {
|
protected void maxDamage(LegacyItemWrapper item, Integer damage) {
|
||||||
throw new UnsupportedOperationException("This feature is only available on 1.20.5+");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -261,7 +261,6 @@ public class RecipeEventListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
|
||||||
public void onAnvilEvent(PrepareAnvilEvent event) {
|
public void onAnvilEvent(PrepareAnvilEvent event) {
|
||||||
if (event.getResult() == null) return;
|
|
||||||
preProcess(event);
|
preProcess(event);
|
||||||
processRepairable(event);
|
processRepairable(event);
|
||||||
processRename(event);
|
processRename(event);
|
||||||
@@ -271,6 +270,7 @@ public class RecipeEventListener implements Listener {
|
|||||||
预处理会阻止一些不合理的原版材质造成的合并问题
|
预处理会阻止一些不合理的原版材质造成的合并问题
|
||||||
*/
|
*/
|
||||||
private void preProcess(PrepareAnvilEvent event) {
|
private void preProcess(PrepareAnvilEvent event) {
|
||||||
|
if (event.getResult() == null) return;
|
||||||
AnvilInventory inventory = event.getInventory();
|
AnvilInventory inventory = event.getInventory();
|
||||||
ItemStack first = inventory.getFirstItem();
|
ItemStack first = inventory.getFirstItem();
|
||||||
ItemStack second = inventory.getSecondItem();
|
ItemStack second = inventory.getSecondItem();
|
||||||
@@ -318,10 +318,9 @@ public class RecipeEventListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (firstCustom.isPresent()) {
|
if (firstCustom.isPresent()) {
|
||||||
CustomItem<ItemStack> firstCustomItem = firstCustom.get();
|
CustomItem<ItemStack> firstCustomItem = firstCustom.get();
|
||||||
if (firstCustomItem.settings().canRepair() == Tristate.FALSE) {
|
if (firstCustomItem.settings().repairable().anvilCombine() == Tristate.FALSE) {
|
||||||
event.setResult(null);
|
event.setResult(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -373,7 +372,7 @@ public class RecipeEventListener implements Listener {
|
|||||||
Key firstId = wrappedFirst.id();
|
Key firstId = wrappedFirst.id();
|
||||||
Optional<CustomItem<ItemStack>> optionalCustomTool = wrappedFirst.getCustomItem();
|
Optional<CustomItem<ItemStack>> optionalCustomTool = wrappedFirst.getCustomItem();
|
||||||
// 物品无法被修复
|
// 物品无法被修复
|
||||||
if (optionalCustomTool.isPresent() && optionalCustomTool.get().settings().canRepair() == Tristate.FALSE) {
|
if (optionalCustomTool.isPresent() && optionalCustomTool.get().settings().repairable().anvilRepair() == Tristate.FALSE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -494,6 +493,7 @@ public class RecipeEventListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("UnstableApiUsage")
|
@SuppressWarnings("UnstableApiUsage")
|
||||||
private void processRename(PrepareAnvilEvent event) {
|
private void processRename(PrepareAnvilEvent event) {
|
||||||
|
if (event.getResult() == null) return;
|
||||||
AnvilInventory inventory = event.getInventory();
|
AnvilInventory inventory = event.getInventory();
|
||||||
ItemStack first = inventory.getFirstItem();
|
ItemStack first = inventory.getFirstItem();
|
||||||
if (ItemStackUtils.isEmpty(first)) {
|
if (ItemStackUtils.isEmpty(first)) {
|
||||||
|
|||||||
@@ -89,11 +89,13 @@ public class BukkitCraftEngine extends CraftEngine {
|
|||||||
super.logger = logger;
|
super.logger = logger;
|
||||||
super.platform = new BukkitPlatform();
|
super.platform = new BukkitPlatform();
|
||||||
super.scheduler = new BukkitSchedulerAdapter(this);
|
super.scheduler = new BukkitSchedulerAdapter(this);
|
||||||
Class<?> compatibilityClass = Objects.requireNonNull(ReflectionUtils.getClazz(COMPATIBILITY_CLASS), "Compatibility class not found");
|
Class<?> compatibilityClass = ReflectionUtils.getClazz(COMPATIBILITY_CLASS);
|
||||||
try {
|
if (compatibilityClass != null) {
|
||||||
super.compatibilityManager = (CompatibilityManager) Objects.requireNonNull(ReflectionUtils.getConstructor(compatibilityClass, 0)).newInstance(this);
|
try {
|
||||||
} catch (ReflectiveOperationException e) {
|
super.compatibilityManager = (CompatibilityManager) Objects.requireNonNull(ReflectionUtils.getConstructor(compatibilityClass, 0)).newInstance(this);
|
||||||
logger().warn("Compatibility class could not be instantiated: " + compatibilityClass.getName());
|
} catch (ReflectiveOperationException e) {
|
||||||
|
logger().warn("Compatibility class could not be instantiated: " + compatibilityClass.getName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ public final class RecipeInjector {
|
|||||||
if (input2.count() != 1 || !isDamageableItem(input2)) return false;
|
if (input2.count() != 1 || !isDamageableItem(input2)) return false;
|
||||||
if (!input1.id().equals(input2.id())) return false;
|
if (!input1.id().equals(input2.id())) return false;
|
||||||
Optional<CustomItem<ItemStack>> customItem = input1.getCustomItem();
|
Optional<CustomItem<ItemStack>> customItem = input1.getCustomItem();
|
||||||
return customItem.isEmpty() || customItem.get().settings().canRepair() != Tristate.FALSE;
|
return customItem.isEmpty() || customItem.get().settings().repairable().craftingTable() != Tristate.FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isDamageableItem(Item<ItemStack> item) {
|
private static boolean isDamageableItem(Item<ItemStack> item) {
|
||||||
|
|||||||
@@ -3142,7 +3142,7 @@ templates#recipes:
|
|||||||
category: building
|
category: building
|
||||||
group: planks
|
group: planks
|
||||||
ingredients:
|
ingredients:
|
||||||
A: '#default:${wood_type}_logs'
|
- '#default:${wood_type}_logs'
|
||||||
result:
|
result:
|
||||||
id: default:${wood_type}_planks
|
id: default:${wood_type}_planks
|
||||||
count: 4
|
count: 4
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.google.gson.JsonObject;
|
|||||||
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||||
import net.momirealms.craftengine.core.block.entity.render.BlockEntityElement;
|
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.entity.render.BlockEntityRendererConfig;
|
||||||
import net.momirealms.craftengine.core.block.properties.Properties;
|
import net.momirealms.craftengine.core.block.properties.Properties;
|
||||||
import net.momirealms.craftengine.core.block.properties.Property;
|
import net.momirealms.craftengine.core.block.properties.Property;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.momirealms.craftengine.core.entity.furniture;
|
package net.momirealms.craftengine.core.entity.furniture;
|
||||||
|
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
|
|||||||
public class ItemSettings {
|
public class ItemSettings {
|
||||||
int fuelTime;
|
int fuelTime;
|
||||||
Set<Key> tags = Set.of();
|
Set<Key> tags = Set.of();
|
||||||
Tristate canRepair = Tristate.UNDEFINED;
|
Repairable repairable = Repairable.UNDEFINED;
|
||||||
List<AnvilRepairItem> anvilRepairItems = List.of();
|
List<AnvilRepairItem> anvilRepairItems = List.of();
|
||||||
boolean renameable = true;
|
boolean renameable = true;
|
||||||
boolean canPlaceRelatedVanillaBlock = false;
|
boolean canPlaceRelatedVanillaBlock = false;
|
||||||
@@ -89,7 +89,7 @@ public class ItemSettings {
|
|||||||
newSettings.fuelTime = settings.fuelTime;
|
newSettings.fuelTime = settings.fuelTime;
|
||||||
newSettings.tags = settings.tags;
|
newSettings.tags = settings.tags;
|
||||||
newSettings.equipment = settings.equipment;
|
newSettings.equipment = settings.equipment;
|
||||||
newSettings.canRepair = settings.canRepair;
|
newSettings.repairable = settings.repairable;
|
||||||
newSettings.anvilRepairItems = settings.anvilRepairItems;
|
newSettings.anvilRepairItems = settings.anvilRepairItems;
|
||||||
newSettings.renameable = settings.renameable;
|
newSettings.renameable = settings.renameable;
|
||||||
newSettings.canPlaceRelatedVanillaBlock = settings.canPlaceRelatedVanillaBlock;
|
newSettings.canPlaceRelatedVanillaBlock = settings.canPlaceRelatedVanillaBlock;
|
||||||
@@ -128,8 +128,8 @@ public class ItemSettings {
|
|||||||
return canPlaceRelatedVanillaBlock;
|
return canPlaceRelatedVanillaBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tristate canRepair() {
|
public Repairable repairable() {
|
||||||
return canRepair;
|
return repairable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int fuelTime() {
|
public int fuelTime() {
|
||||||
@@ -233,8 +233,8 @@ public class ItemSettings {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemSettings canRepair(Tristate canRepair) {
|
public ItemSettings repairable(Repairable repairable) {
|
||||||
this.canRepair = canRepair;
|
this.repairable = repairable;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,8 +315,14 @@ public class ItemSettings {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
registerFactory("repairable", (value -> {
|
registerFactory("repairable", (value -> {
|
||||||
boolean bool = ResourceConfigUtils.getAsBoolean(value, "repairable");
|
if (value instanceof Map<?,?> mapValue) {
|
||||||
return settings -> settings.canRepair(bool ? Tristate.TRUE : Tristate.FALSE);
|
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 -> {
|
registerFactory("enchantable", (value -> {
|
||||||
boolean bool = ResourceConfigUtils.getAsBoolean(value, "enchantable");
|
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.item.ItemDataModifierFactory;
|
||||||
import net.momirealms.craftengine.core.util.Color;
|
import net.momirealms.craftengine.core.util.Color;
|
||||||
import net.momirealms.craftengine.core.util.Key;
|
import net.momirealms.craftengine.core.util.Key;
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.joml.Vector3f;
|
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();
|
JsonArray overrides = new JsonArray();
|
||||||
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
|
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) {
|
} catch (IOException e) {
|
||||||
this.plugin.logger().warn("Failed to read item json " + itemPath.toAbsolutePath());
|
this.plugin.logger().warn("Failed to read item json " + itemPath.toAbsolutePath());
|
||||||
continue;
|
continue;
|
||||||
@@ -1865,13 +1869,31 @@ public abstract class AbstractPackManager implements PackManager {
|
|||||||
} else {
|
} else {
|
||||||
// 如果路径不存在,则需要我们创建一个json对象,并对接model的路径
|
// 如果路径不存在,则需要我们创建一个json对象,并对接model的路径
|
||||||
itemJson = new JsonObject();
|
itemJson = new JsonObject();
|
||||||
LegacyOverridesModel firstModel = legacyOverridesModels.getFirst();
|
|
||||||
itemJson.addProperty("parent", firstModel.model());
|
LegacyOverridesModel firstBaseModel = null;
|
||||||
JsonArray overrides = new JsonArray();
|
List<JsonObject> overrideJsons = new ArrayList<>();
|
||||||
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
|
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 {
|
try {
|
||||||
Files.createDirectories(itemPath.getParent());
|
Files.createDirectories(itemPath.getParent());
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class LegacyOverridesModel implements Comparable<LegacyOverridesModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPredicate() {
|
public boolean hasPredicate() {
|
||||||
return !predicate.isEmpty();
|
return predicate != null && !predicate.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String model() {
|
public String model() {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.momirealms.craftengine.core.pack.model.generation.display;
|
package net.momirealms.craftengine.core.pack.model.generation.display;
|
||||||
|
|
||||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
|
||||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
package net.momirealms.craftengine.core.util;
|
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.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class MiscUtils {
|
public class MiscUtils {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Project settings
|
# Project settings
|
||||||
# Rule: [major update].[feature update].[bug fix]
|
# Rule: [major update].[feature update].[bug fix]
|
||||||
project_version=0.0.62.15
|
project_version=0.0.62.16
|
||||||
config_version=45
|
config_version=45
|
||||||
lang_version=25
|
lang_version=25
|
||||||
project_group=net.momirealms
|
project_group=net.momirealms
|
||||||
@@ -50,7 +50,7 @@ byte_buddy_version=1.17.5
|
|||||||
ahocorasick_version=0.6.3
|
ahocorasick_version=0.6.3
|
||||||
snake_yaml_version=2.5
|
snake_yaml_version=2.5
|
||||||
anti_grief_version=0.20
|
anti_grief_version=0.20
|
||||||
nms_helper_version=1.0.77
|
nms_helper_version=1.0.80
|
||||||
evalex_version=3.5.0
|
evalex_version=3.5.0
|
||||||
reactive_streams_version=1.0.4
|
reactive_streams_version=1.0.4
|
||||||
amazon_awssdk_version=2.33.1
|
amazon_awssdk_version=2.33.1
|
||||||
|
|||||||
Reference in New Issue
Block a user