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

添加新版本使用nbt的支持

This commit is contained in:
XiaoMoMi
2025-07-26 23:07:10 +08:00
parent 6f05c7d871
commit fd6eb13404
3 changed files with 20 additions and 11 deletions

View File

@@ -554,12 +554,10 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
return new DyedColorModifier<>(0 << 24 /*不可省略*/ | MCUtils.fastFloor(vector3f.x) << 16 | MCUtils.fastFloor(vector3f.y) << 8 | MCUtils.fastFloor(vector3f.z));
}
}, "dyed-color");
if (!VersionHelper.isOrAbove1_21_5()) {
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
return new TagsModifier<>(data);
}, "tags", "tag", "nbt");
}
registerDataType((obj) -> {
Map<String, Object> data = MiscUtils.castToMap(obj, false);
return new TagsModifier<>(data);
}, "tags", "tag", "nbt");
registerDataType((object -> {
MutableInt mutableInt = new MutableInt(0);
List<AttributeModifier> attributeModifiers = ResourceConfigUtils.parseConfigAsList(object, (map) -> {

View File

@@ -1,10 +1,12 @@
package net.momirealms.craftengine.core.item.modifier;
import net.momirealms.craftengine.core.item.ComponentKeys;
import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.item.ItemBuildContext;
import net.momirealms.craftengine.core.item.NetworkItemHandler;
import net.momirealms.craftengine.core.util.MiscUtils;
import net.momirealms.craftengine.core.util.TypeUtils;
import net.momirealms.craftengine.core.util.VersionHelper;
import net.momirealms.sparrow.nbt.CompoundTag;
import net.momirealms.sparrow.nbt.Tag;
@@ -40,12 +42,21 @@ public class TagsModifier<I> implements ItemDataModifier<I> {
// TODO NOT PERFECT
@Override
public Item<I> prepareNetworkItem(Item<I> item, ItemBuildContext context, CompoundTag networkData) {
for (Map.Entry<String, Object> entry : this.arguments.entrySet()) {
Tag previous = item.getTag(entry.getKey());
if (VersionHelper.isOrAbove1_20_5()) {
Tag previous = item.getSparrowNBTComponent(ComponentKeys.CUSTOM_DATA);
if (previous != null) {
networkData.put(entry.getKey(), NetworkItemHandler.pack(NetworkItemHandler.Operation.ADD, previous));
networkData.put(ComponentKeys.CUSTOM_DATA.asString(), NetworkItemHandler.pack(NetworkItemHandler.Operation.ADD, previous));
} else {
networkData.put(entry.getKey(), NetworkItemHandler.pack(NetworkItemHandler.Operation.REMOVE));
networkData.put(ComponentKeys.CUSTOM_DATA.asString(), NetworkItemHandler.pack(NetworkItemHandler.Operation.REMOVE));
}
} else {
for (Map.Entry<String, Object> entry : this.arguments.entrySet()) {
Tag previous = item.getTag(entry.getKey());
if (previous != null) {
networkData.put(entry.getKey(), NetworkItemHandler.pack(NetworkItemHandler.Operation.ADD, previous));
} else {
networkData.put(entry.getKey(), NetworkItemHandler.pack(NetworkItemHandler.Operation.REMOVE));
}
}
}
return item;

View File

@@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G
# Project settings
# Rule: [major update].[feature update].[bug fix]
project_version=0.0.60.5
project_version=0.0.60.6
config_version=43
lang_version=22
project_group=net.momirealms