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:
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user