9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2026-01-06 15:52:03 +00:00

添加block-state data类型

This commit is contained in:
XiaoMoMi
2025-10-08 17:37:56 +08:00
parent 0c2b3577fa
commit a254cf7e53
17 changed files with 144 additions and 8 deletions

View File

@@ -7,6 +7,8 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.block.properties.Property;
import net.momirealms.craftengine.core.util.Key;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
public class BukkitCustomBlockStateWrapper extends AbstractBlockStateWrapper {
@@ -51,6 +53,12 @@ public class BukkitCustomBlockStateWrapper extends AbstractBlockStateWrapper {
return getImmutableBlockState().map(state -> state.owner().value().getProperty(propertyName) != null).orElse(false);
}
@Override
public Collection<String> getPropertyNames() {
Optional<ImmutableBlockState> immutableBlockState = getImmutableBlockState();
return immutableBlockState.<Collection<String>>map(state -> state.getProperties().stream().map(Property::name).toList()).orElseGet(List::of);
}
@Override
public String getAsString() {
return getImmutableBlockState().map(ImmutableBlockState::toString).orElseGet(() -> BlockStateUtils.fromBlockData(super.blockState).getAsString());

View File

@@ -8,6 +8,8 @@ import net.momirealms.craftengine.core.block.BlockStateWrapper;
import net.momirealms.craftengine.core.block.StatePropertyAccessor;
import net.momirealms.craftengine.core.util.Key;
import java.util.Collection;
public class BukkitVanillaBlockStateWrapper extends AbstractBlockStateWrapper {
private final StatePropertyAccessor accessor;
@@ -31,6 +33,11 @@ public class BukkitVanillaBlockStateWrapper extends AbstractBlockStateWrapper {
return this.accessor.hasProperty(propertyName);
}
@Override
public Collection<String> getPropertyNames() {
return this.accessor.getPropertyNames();
}
@Override
public String getAsString() {
return BlockStateUtils.fromBlockData(super.blockState).getAsString();

View File

@@ -18,7 +18,6 @@ import net.momirealms.sparrow.nbt.CompoundTag;
import net.momirealms.sparrow.nbt.ListTag;
import net.momirealms.sparrow.nbt.StringTag;
import net.momirealms.sparrow.nbt.Tag;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;

View File

@@ -609,4 +609,14 @@ public class ComponentItemFactory1_20_5 extends BukkitItemFactory<ComponentItemW
}
item.setSparrowNBTComponent(ComponentKeys.ATTRIBUTE_MODIFIERS, compoundTag);
}
@Override
protected Optional<Map<String, String>> blockState(ComponentItemWrapper item) {
return Optional.empty();
}
@Override
protected void blockState(ComponentItemWrapper item, Map<String, String> state) {
}
}