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)); return new DyedColorModifier<>(0 << 24 /*不可省略*/ | MCUtils.fastFloor(vector3f.x) << 16 | MCUtils.fastFloor(vector3f.y) << 8 | MCUtils.fastFloor(vector3f.z));
} }
}, "dyed-color"); }, "dyed-color");
if (!VersionHelper.isOrAbove1_21_5()) { registerDataType((obj) -> {
registerDataType((obj) -> { Map<String, Object> data = MiscUtils.castToMap(obj, false);
Map<String, Object> data = MiscUtils.castToMap(obj, false); return new TagsModifier<>(data);
return new TagsModifier<>(data); }, "tags", "tag", "nbt");
}, "tags", "tag", "nbt");
}
registerDataType((object -> { registerDataType((object -> {
MutableInt mutableInt = new MutableInt(0); MutableInt mutableInt = new MutableInt(0);
List<AttributeModifier> attributeModifiers = ResourceConfigUtils.parseConfigAsList(object, (map) -> { List<AttributeModifier> attributeModifiers = ResourceConfigUtils.parseConfigAsList(object, (map) -> {

View File

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

View File

@@ -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.60.5 project_version=0.0.60.6
config_version=43 config_version=43
lang_version=22 lang_version=22
project_group=net.momirealms project_group=net.momirealms