9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-22 16:39:28 +00:00

优化命名

This commit is contained in:
XiaoMoMi
2025-12-05 18:30:36 +08:00
parent 727df39d2c
commit 15593345ea
27 changed files with 122 additions and 83 deletions

View File

@@ -9,8 +9,8 @@ import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
import net.momirealms.craftengine.bukkit.plugin.user.BukkitServerPlayer; import net.momirealms.craftengine.bukkit.plugin.user.BukkitServerPlayer;
import net.momirealms.craftengine.bukkit.world.BukkitWorld; import net.momirealms.craftengine.bukkit.world.BukkitWorld;
import net.momirealms.craftengine.core.entity.furniture.AnchorType; import net.momirealms.craftengine.core.entity.furniture.AnchorType;
import net.momirealms.craftengine.core.entity.furniture.CustomFurniture;
import net.momirealms.craftengine.core.entity.furniture.Furniture; import net.momirealms.craftengine.core.entity.furniture.Furniture;
import net.momirealms.craftengine.core.entity.furniture.FurnitureConfig;
import net.momirealms.craftengine.core.entity.furniture.FurnitureDataAccessor; import net.momirealms.craftengine.core.entity.furniture.FurnitureDataAccessor;
import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.entity.player.InteractionHand;
import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.Item;
@@ -49,7 +49,7 @@ public final class CraftEngineFurniture {
* @return a non-null map containing all loaded custom furniture * @return a non-null map containing all loaded custom furniture
*/ */
@NotNull @NotNull
public static Map<Key, FurnitureConfig> loadedFurniture() { public static Map<Key, CustomFurniture> loadedFurniture() {
return BukkitFurnitureManager.instance().loadedFurniture(); return BukkitFurnitureManager.instance().loadedFurniture();
} }
@@ -59,7 +59,7 @@ public final class CraftEngineFurniture {
* @param id id * @param id id
* @return the custom furniture * @return the custom furniture
*/ */
public static FurnitureConfig byId(@NotNull Key id) { public static CustomFurniture byId(@NotNull Key id) {
return BukkitFurnitureManager.instance().furnitureById(id).orElse(null); return BukkitFurnitureManager.instance().furnitureById(id).orElse(null);
} }
@@ -111,7 +111,7 @@ public final class CraftEngineFurniture {
*/ */
@Nullable @Nullable
public static BukkitFurniture place(Location location, Key furnitureId) { public static BukkitFurniture place(Location location, Key furnitureId) {
FurnitureConfig furniture = byId(furnitureId); CustomFurniture furniture = byId(furnitureId);
if (furniture == null) return null; if (furniture == null) return null;
return place(location, furniture, furniture.anyVariantName(), false); return place(location, furniture, furniture.anyVariantName(), false);
} }
@@ -140,7 +140,7 @@ public final class CraftEngineFurniture {
*/ */
@Nullable @Nullable
public static BukkitFurniture place(Location location, Key furnitureId, String variant) { public static BukkitFurniture place(Location location, Key furnitureId, String variant) {
FurnitureConfig furniture = byId(furnitureId); CustomFurniture furniture = byId(furnitureId);
if (furniture == null) return null; if (furniture == null) return null;
return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.ofVariant(variant), true); return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.ofVariant(variant), true);
} }
@@ -155,7 +155,7 @@ public final class CraftEngineFurniture {
*/ */
@NotNull @NotNull
@Deprecated(since = "0.0.66", forRemoval = true) @Deprecated(since = "0.0.66", forRemoval = true)
public static BukkitFurniture place(Location location, FurnitureConfig furniture, AnchorType anchorType) { public static BukkitFurniture place(Location location, CustomFurniture furniture, AnchorType anchorType) {
return place(location, furniture, anchorType.variantName(), true); return place(location, furniture, anchorType.variantName(), true);
} }
@@ -171,7 +171,7 @@ public final class CraftEngineFurniture {
@Nullable @Nullable
@Deprecated(since = "0.0.66", forRemoval = true) @Deprecated(since = "0.0.66", forRemoval = true)
public static BukkitFurniture place(Location location, Key furnitureId, AnchorType anchorType, boolean playSound) { public static BukkitFurniture place(Location location, Key furnitureId, AnchorType anchorType, boolean playSound) {
FurnitureConfig furniture = byId(furnitureId); CustomFurniture furniture = byId(furnitureId);
if (furniture == null) return null; if (furniture == null) return null;
return place(location, furniture, anchorType.variantName(), playSound); return place(location, furniture, anchorType.variantName(), playSound);
} }
@@ -187,7 +187,7 @@ public final class CraftEngineFurniture {
*/ */
@Nullable @Nullable
public static BukkitFurniture place(Location location, Key furnitureId, String variant, boolean playSound) { public static BukkitFurniture place(Location location, Key furnitureId, String variant, boolean playSound) {
FurnitureConfig furniture = byId(furnitureId); CustomFurniture furniture = byId(furnitureId);
if (furniture == null) return null; if (furniture == null) return null;
return place(location, furniture, variant, playSound); return place(location, furniture, variant, playSound);
} }
@@ -203,7 +203,7 @@ public final class CraftEngineFurniture {
*/ */
@NotNull @NotNull
@Deprecated(since = "0.0.66", forRemoval = true) @Deprecated(since = "0.0.66", forRemoval = true)
public static BukkitFurniture place(Location location, FurnitureConfig furniture, AnchorType anchorType, boolean playSound) { public static BukkitFurniture place(Location location, CustomFurniture furniture, AnchorType anchorType, boolean playSound) {
return place(location, furniture, anchorType.variantName(), playSound); return place(location, furniture, anchorType.variantName(), playSound);
} }
@@ -217,7 +217,7 @@ public final class CraftEngineFurniture {
* @return the loaded furniture * @return the loaded furniture
*/ */
@NotNull @NotNull
public static BukkitFurniture place(Location location, FurnitureConfig furniture, String variant, boolean playSound) { public static BukkitFurniture place(Location location, CustomFurniture furniture, String variant, boolean playSound) {
return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.ofVariant(variant), playSound); return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.ofVariant(variant), playSound);
} }
@@ -231,7 +231,7 @@ public final class CraftEngineFurniture {
* @return the loaded furniture * @return the loaded furniture
*/ */
@NotNull @NotNull
public static BukkitFurniture place(Location location, FurnitureConfig furniture, CompoundTag data, boolean playSound) { public static BukkitFurniture place(Location location, CustomFurniture furniture, CompoundTag data, boolean playSound) {
return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.of(data), playSound); return BukkitFurnitureManager.instance().place(location, furniture, FurnitureDataAccessor.of(data), playSound);
} }
@@ -245,7 +245,7 @@ public final class CraftEngineFurniture {
* @return the loaded furniture * @return the loaded furniture
*/ */
@NotNull @NotNull
public static BukkitFurniture place(Location location, FurnitureConfig furniture, FurnitureDataAccessor dataAccessor, boolean playSound) { public static BukkitFurniture place(Location location, CustomFurniture furniture, FurnitureDataAccessor dataAccessor, boolean playSound) {
return BukkitFurnitureManager.instance().place(location, furniture, dataAccessor, playSound); return BukkitFurnitureManager.instance().place(location, furniture, dataAccessor, playSound);
} }

View File

@@ -1,6 +1,6 @@
package net.momirealms.craftengine.bukkit.api.event; package net.momirealms.craftengine.bukkit.api.event;
import net.momirealms.craftengine.core.entity.furniture.FurnitureConfig; import net.momirealms.craftengine.core.entity.furniture.CustomFurniture;
import net.momirealms.craftengine.core.entity.furniture.FurnitureVariant; import net.momirealms.craftengine.core.entity.furniture.FurnitureVariant;
import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.entity.player.InteractionHand;
import org.bukkit.Location; import org.bukkit.Location;
@@ -14,14 +14,14 @@ import org.jetbrains.annotations.NotNull;
public final class FurnitureAttemptPlaceEvent extends PlayerEvent implements Cancellable { public final class FurnitureAttemptPlaceEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList(); private static final HandlerList HANDLER_LIST = new HandlerList();
private boolean cancelled; private boolean cancelled;
private final FurnitureConfig furniture; private final CustomFurniture furniture;
private final Location location; private final Location location;
private final FurnitureVariant variant; private final FurnitureVariant variant;
private final Block clickedBlock; private final Block clickedBlock;
private final InteractionHand hand; private final InteractionHand hand;
public FurnitureAttemptPlaceEvent(@NotNull Player player, public FurnitureAttemptPlaceEvent(@NotNull Player player,
@NotNull FurnitureConfig furniture, @NotNull CustomFurniture furniture,
@NotNull FurnitureVariant variant, @NotNull FurnitureVariant variant,
@NotNull Location location, @NotNull Location location,
@NotNull InteractionHand hand, @NotNull InteractionHand hand,
@@ -60,7 +60,7 @@ public final class FurnitureAttemptPlaceEvent extends PlayerEvent implements Can
} }
@NotNull @NotNull
public FurnitureConfig furniture() { public CustomFurniture furniture() {
return furniture; return furniture;
} }

View File

@@ -30,7 +30,7 @@ public class BukkitFurniture extends Furniture {
private final WeakReference<ItemDisplay> metaEntity; private final WeakReference<ItemDisplay> metaEntity;
private Location location; private Location location;
public BukkitFurniture(ItemDisplay metaEntity, FurnitureConfig config, FurnitureDataAccessor data) { public BukkitFurniture(ItemDisplay metaEntity, CustomFurniture config, FurnitureDataAccessor data) {
super(new BukkitEntity(metaEntity), data, config); super(new BukkitEntity(metaEntity), data, config);
this.metaEntity = new WeakReference<>(metaEntity); this.metaEntity = new WeakReference<>(metaEntity);
this.location = metaEntity.getLocation(); this.location = metaEntity.getLocation();

View File

@@ -62,11 +62,11 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager {
} }
@Override @Override
public Furniture place(WorldPosition position, FurnitureConfig furniture, FurnitureDataAccessor dataAccessor, boolean playSound) { public Furniture place(WorldPosition position, CustomFurniture furniture, FurnitureDataAccessor dataAccessor, boolean playSound) {
return this.place(LocationUtils.toLocation(position), furniture, dataAccessor, playSound); return this.place(LocationUtils.toLocation(position), furniture, dataAccessor, playSound);
} }
public BukkitFurniture place(Location location, FurnitureConfig furniture, FurnitureDataAccessor data, boolean playSound) { public BukkitFurniture place(Location location, CustomFurniture furniture, FurnitureDataAccessor data, boolean playSound) {
Entity furnitureEntity = EntityUtils.spawnEntity(location.getWorld(), location, EntityType.ITEM_DISPLAY, entity -> { Entity furnitureEntity = EntityUtils.spawnEntity(location.getWorld(), location, EntityType.ITEM_DISPLAY, entity -> {
ItemDisplay display = (ItemDisplay) entity; ItemDisplay display = (ItemDisplay) entity;
display.getPersistentDataContainer().set(BukkitFurnitureManager.FURNITURE_KEY, PersistentDataType.STRING, furniture.id().toString()); display.getPersistentDataContainer().set(BukkitFurnitureManager.FURNITURE_KEY, PersistentDataType.STRING, furniture.id().toString());
@@ -218,7 +218,7 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager {
// 获取家具配置 // 获取家具配置
Key key = Key.of(id); Key key = Key.of(id);
Optional<FurnitureConfig> optionalFurniture = furnitureById(key); Optional<CustomFurniture> optionalFurniture = furnitureById(key);
if (optionalFurniture.isEmpty()) return; if (optionalFurniture.isEmpty()) return;
// 只对1.20.2及以上生效1.20.1比较特殊 // 只对1.20.2及以上生效1.20.1比较特殊
@@ -227,7 +227,7 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager {
} }
// 已经在其他事件里加载过了 // 已经在其他事件里加载过了
FurnitureConfig customFurniture = optionalFurniture.get(); CustomFurniture customFurniture = optionalFurniture.get();
BukkitFurniture previous = this.byMetaEntityId.get(entity.getEntityId()); BukkitFurniture previous = this.byMetaEntityId.get(entity.getEntityId());
if (previous != null) return; if (previous != null) return;
@@ -254,11 +254,11 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager {
// 获取家具配置 // 获取家具配置
Key key = Key.of(id); Key key = Key.of(id);
Optional<FurnitureConfig> optionalFurniture = furnitureById(key); Optional<CustomFurniture> optionalFurniture = furnitureById(key);
if (optionalFurniture.isEmpty()) return; if (optionalFurniture.isEmpty()) return;
// 已经在其他事件里加载过了 // 已经在其他事件里加载过了
FurnitureConfig customFurniture = optionalFurniture.get(); CustomFurniture customFurniture = optionalFurniture.get();
BukkitFurniture previous = this.byMetaEntityId.get(entity.getEntityId()); BukkitFurniture previous = this.byMetaEntityId.get(entity.getEntityId());
if (previous != null) return; if (previous != null) return;
@@ -321,7 +321,7 @@ public class BukkitFurnitureManager extends AbstractFurnitureManager {
} }
// 创建家具实例,并初始化碰撞实体 // 创建家具实例,并初始化碰撞实体
private BukkitFurniture createFurnitureInstance(ItemDisplay display, FurnitureConfig furniture) { private BukkitFurniture createFurnitureInstance(ItemDisplay display, CustomFurniture furniture) {
BukkitFurniture bukkitFurniture = new BukkitFurniture(display, furniture, getFurnitureDataAccessor(display)); BukkitFurniture bukkitFurniture = new BukkitFurniture(display, furniture, getFurnitureDataAccessor(display));
initFurniture(bukkitFurniture); initFurniture(bukkitFurniture);
Location location = display.getLocation(); Location location = display.getLocation();

View File

@@ -74,7 +74,7 @@ public class FurnitureItemBehavior extends ItemBehavior {
} }
public InteractionResult place(UseOnContext context) { public InteractionResult place(UseOnContext context) {
Optional<FurnitureConfig> optionalCustomFurniture = BukkitFurnitureManager.instance().furnitureById(this.id); Optional<CustomFurniture> optionalCustomFurniture = BukkitFurnitureManager.instance().furnitureById(this.id);
if (optionalCustomFurniture.isEmpty()) { if (optionalCustomFurniture.isEmpty()) {
CraftEngine.instance().logger().warn("Furniture " + this.id + " not found"); CraftEngine.instance().logger().warn("Furniture " + this.id + " not found");
return InteractionResult.FAIL; return InteractionResult.FAIL;
@@ -87,7 +87,7 @@ public class FurnitureItemBehavior extends ItemBehavior {
case DOWN -> AnchorType.CEILING; case DOWN -> AnchorType.CEILING;
}; };
FurnitureConfig customFurniture = optionalCustomFurniture.get(); CustomFurniture customFurniture = optionalCustomFurniture.get();
FurnitureVariant variant = customFurniture.getVariant(anchorType.variantName()); FurnitureVariant variant = customFurniture.getVariant(anchorType.variantName());
if (variant == null) { if (variant == null) {
return InteractionResult.FAIL; return InteractionResult.FAIL;

View File

@@ -4,7 +4,7 @@ import net.momirealms.craftengine.bukkit.api.CraftEngineFurniture;
import net.momirealms.craftengine.bukkit.entity.furniture.BukkitFurnitureManager; import net.momirealms.craftengine.bukkit.entity.furniture.BukkitFurnitureManager;
import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature; import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature;
import net.momirealms.craftengine.bukkit.util.KeyUtils; import net.momirealms.craftengine.bukkit.util.KeyUtils;
import net.momirealms.craftengine.core.entity.furniture.FurnitureConfig; import net.momirealms.craftengine.core.entity.furniture.CustomFurniture;
import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager; import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager;
import net.momirealms.craftengine.core.plugin.command.FlagKeys; import net.momirealms.craftengine.core.plugin.command.FlagKeys;
@@ -48,7 +48,7 @@ public class DebugSpawnFurnitureCommand extends BukkitCommandFeature<CommandSend
NamespacedKey namespacedKey = context.get("id"); NamespacedKey namespacedKey = context.get("id");
Key id = KeyUtils.namespacedKey2Key(namespacedKey); Key id = KeyUtils.namespacedKey2Key(namespacedKey);
BukkitFurnitureManager furnitureManager = BukkitFurnitureManager.instance(); BukkitFurnitureManager furnitureManager = BukkitFurnitureManager.instance();
Optional<FurnitureConfig> optionalCustomFurniture = furnitureManager.furnitureById(id); Optional<CustomFurniture> optionalCustomFurniture = furnitureManager.furnitureById(id);
return optionalCustomFurniture.<CompletableFuture<? extends Iterable<? extends Suggestion>>>map(config -> CompletableFuture.completedFuture(config.variants().keySet().stream().map(Suggestion::suggestion).toList())).orElseGet(() -> CompletableFuture.completedFuture(List.of())); return optionalCustomFurniture.<CompletableFuture<? extends Iterable<? extends Suggestion>>>map(config -> CompletableFuture.completedFuture(config.variants().keySet().stream().map(Suggestion::suggestion).toList())).orElseGet(() -> CompletableFuture.completedFuture(List.of()));
} }
})) }))
@@ -57,12 +57,12 @@ public class DebugSpawnFurnitureCommand extends BukkitCommandFeature<CommandSend
NamespacedKey namespacedKey = context.get("id"); NamespacedKey namespacedKey = context.get("id");
Key id = KeyUtils.namespacedKey2Key(namespacedKey); Key id = KeyUtils.namespacedKey2Key(namespacedKey);
BukkitFurnitureManager furnitureManager = BukkitFurnitureManager.instance(); BukkitFurnitureManager furnitureManager = BukkitFurnitureManager.instance();
Optional<FurnitureConfig> optionalCustomFurniture = furnitureManager.furnitureById(id); Optional<CustomFurniture> optionalCustomFurniture = furnitureManager.furnitureById(id);
if (optionalCustomFurniture.isEmpty()) { if (optionalCustomFurniture.isEmpty()) {
return; return;
} }
Location location = context.get("location"); Location location = context.get("location");
FurnitureConfig customFurniture = optionalCustomFurniture.get(); CustomFurniture customFurniture = optionalCustomFurniture.get();
String variant = (String) context.optional("variant").orElse(customFurniture.anyVariantName()); String variant = (String) context.optional("variant").orElse(customFurniture.anyVariantName());
boolean playSound = context.flags().hasFlag("silent"); boolean playSound = context.flags().hasFlag("silent");
CraftEngineFurniture.place(location, customFurniture, variant, playSound); CraftEngineFurniture.place(location, customFurniture, variant, playSound);

View File

@@ -238,6 +238,8 @@ warning.config.furniture.element.item_display.missing_item: "<yellow>Issue found
warning.config.furniture.settings.unknown: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using an unknown setting type '<arg:2>'.</yellow>" warning.config.furniture.settings.unknown: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using an unknown setting type '<arg:2>'.</yellow>"
warning.config.furniture.hitbox.invalid_type: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using an invalid hitbox type '<arg:2>'.</yellow>" warning.config.furniture.hitbox.invalid_type: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using an invalid hitbox type '<arg:2>'.</yellow>"
warning.config.furniture.hitbox.custom.invalid_entity: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using a custom hitbox with invalid entity type '<arg:2>'.</yellow>" warning.config.furniture.hitbox.custom.invalid_entity: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using a custom hitbox with invalid entity type '<arg:2>'.</yellow>"
warning.config.furniture.behavior.missing_type: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is missing the required 'type' argument for behavior.</yellow>"
warning.config.furniture.behavior.invalid_type: "<yellow>Issue found in file <arg:0> - The furniture '<arg:1>' is using an invalid behavior type '<arg:2>'.</yellow>"
warning.config.item.duplicate: "<yellow>Issue found in file <arg:0> - Duplicated item '<arg:1>'. Please check if there is the same configuration in other files.</yellow>" warning.config.item.duplicate: "<yellow>Issue found in file <arg:0> - Duplicated item '<arg:1>'. Please check if there is the same configuration in other files.</yellow>"
warning.config.item.settings.unknown: "<yellow>Issue found in file <arg:0> - The item '<arg:1>' is using an unknown setting type '<arg:2>'.</yellow>" warning.config.item.settings.unknown: "<yellow>Issue found in file <arg:0> - The item '<arg:1>' is using an unknown setting type '<arg:2>'.</yellow>"
warning.config.item.settings.invulnerable.invalid_damage_source: "<yellow>Issue found in file <arg:0> - The item '<arg:1>' is using an unknown damage source '<arg:2>'. Allowed sources: [<arg:3>].</yellow>" warning.config.item.settings.invulnerable.invalid_damage_source: "<yellow>Issue found in file <arg:0> - The item '<arg:1>' is using an unknown damage source '<arg:2>'. Allowed sources: [<arg:3>].</yellow>"

View File

@@ -5,6 +5,7 @@ import net.momirealms.craftengine.core.block.CustomBlock;
import java.util.Map; import java.util.Map;
// todo refactor this on 1.0
public interface BlockBehaviorFactory { public interface BlockBehaviorFactory {
BlockBehavior create(CustomBlock block, Map<String, Object> arguments); BlockBehavior create(CustomBlock block, Map<String, Object> arguments);

View File

@@ -25,7 +25,7 @@ import java.nio.file.Path;
import java.util.*; import java.util.*;
public abstract class AbstractFurnitureManager implements FurnitureManager { public abstract class AbstractFurnitureManager implements FurnitureManager {
protected final Map<Key, FurnitureConfig> byId = new HashMap<>(); protected final Map<Key, CustomFurniture> byId = new HashMap<>();
private final CraftEngine plugin; private final CraftEngine plugin;
private final FurnitureParser furnitureParser; private final FurnitureParser furnitureParser;
// Cached command suggestions // Cached command suggestions
@@ -60,12 +60,12 @@ public abstract class AbstractFurnitureManager implements FurnitureManager {
} }
@Override @Override
public Optional<FurnitureConfig> furnitureById(Key id) { public Optional<CustomFurniture> furnitureById(Key id) {
return Optional.ofNullable(this.byId.get(id)); return Optional.ofNullable(this.byId.get(id));
} }
@Override @Override
public Map<Key, FurnitureConfig> loadedFurniture() { public Map<Key, CustomFurniture> loadedFurniture() {
return Collections.unmodifiableMap(this.byId); return Collections.unmodifiableMap(this.byId);
} }
@@ -130,7 +130,6 @@ public abstract class AbstractFurnitureManager implements FurnitureManager {
Optional<Vector3f> optionalLootSpawnOffset = Optional.ofNullable(variantArguments.get("loot-spawn-offset")).map(it -> ResourceConfigUtils.getAsVector3f(it, "loot-spawn-offset")); Optional<Vector3f> optionalLootSpawnOffset = Optional.ofNullable(variantArguments.get("loot-spawn-offset")).map(it -> ResourceConfigUtils.getAsVector3f(it, "loot-spawn-offset"));
List<FurnitureElementConfig<?>> elements = ResourceConfigUtils.parseConfigAsList(variantArguments.get("elements"), FurnitureElementConfigs::fromMap); List<FurnitureElementConfig<?>> elements = ResourceConfigUtils.parseConfigAsList(variantArguments.get("elements"), FurnitureElementConfigs::fromMap);
// fixme 外部模型不应该在这
Optional<ExternalModel> externalModel; Optional<ExternalModel> externalModel;
if (variantArguments.containsKey("model-engine")) { if (variantArguments.containsKey("model-engine")) {
externalModel = Optional.of(plugin.compatibilityManager().createModel("ModelEngine", variantArguments.get("model-engine").toString())); externalModel = Optional.of(plugin.compatibilityManager().createModel("ModelEngine", variantArguments.get("model-engine").toString()));
@@ -155,7 +154,7 @@ public abstract class AbstractFurnitureManager implements FurnitureManager {
)); ));
} }
FurnitureConfig furniture = FurnitureConfig.builder() CustomFurniture furniture = CustomFurniture.builder()
.id(id) .id(id)
.settings(FurnitureSettings.fromMap(MiscUtils.castToMap(section.get("settings"), true))) .settings(FurnitureSettings.fromMap(MiscUtils.castToMap(section.get("settings"), true)))
.variants(variants) .variants(variants)

View File

@@ -14,7 +14,7 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
public interface FurnitureConfig { public interface CustomFurniture {
void execute(Context context, EventTrigger trigger); void execute(Context context, EventTrigger trigger);
@@ -68,7 +68,7 @@ public interface FurnitureConfig {
} }
static Builder builder() { static Builder builder() {
return new FurnitureConfigImpl.BuilderImpl(); return new CustomFurnitureImpl.BuilderImpl();
} }
interface Builder { interface Builder {
@@ -85,6 +85,6 @@ public interface FurnitureConfig {
Builder behavior(FurnitureBehavior behavior); Builder behavior(FurnitureBehavior behavior);
FurnitureConfig build(); CustomFurniture build();
} }
} }

View File

@@ -16,7 +16,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
class FurnitureConfigImpl implements FurnitureConfig { class CustomFurnitureImpl implements CustomFurniture {
private final Key id; private final Key id;
private final FurnitureSettings settings; private final FurnitureSettings settings;
private final Map<String, FurnitureVariant> variants; private final Map<String, FurnitureVariant> variants;
@@ -25,7 +25,7 @@ class FurnitureConfigImpl implements FurnitureConfig {
@Nullable @Nullable
private final LootTable<?> lootTable; private final LootTable<?> lootTable;
private FurnitureConfigImpl(@NotNull Key id, private CustomFurnitureImpl(@NotNull Key id,
@NotNull FurnitureSettings settings, @NotNull FurnitureSettings settings,
@NotNull Map<String, FurnitureVariant> variants, @NotNull Map<String, FurnitureVariant> variants,
@NotNull Map<EventTrigger, List<Function<Context>>> events, @NotNull Map<EventTrigger, List<Function<Context>>> events,
@@ -86,8 +86,8 @@ class FurnitureConfigImpl implements FurnitureConfig {
private FurnitureBehavior behavior = EmptyFurnitureBehavior.INSTANCE; private FurnitureBehavior behavior = EmptyFurnitureBehavior.INSTANCE;
@Override @Override
public FurnitureConfig build() { public CustomFurniture build() {
return new FurnitureConfigImpl(this.id, this.settings, this.variants, this.events, this.behavior, this.lootTable); return new CustomFurnitureImpl(this.id, this.settings, this.variants, this.events, this.behavior, this.lootTable);
} }
@Override @Override

View File

@@ -35,7 +35,7 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
public abstract class Furniture implements Cullable { public abstract class Furniture implements Cullable {
public final FurnitureConfig config; public final CustomFurniture config;
public final FurnitureDataAccessor dataAccessor; public final FurnitureDataAccessor dataAccessor;
public final Entity metaDataEntity; public final Entity metaDataEntity;
@@ -50,7 +50,7 @@ public abstract class Furniture implements Cullable {
private boolean hasExternalModel; private boolean hasExternalModel;
protected Furniture(Entity metaDataEntity, FurnitureDataAccessor data, FurnitureConfig config) { protected Furniture(Entity metaDataEntity, FurnitureDataAccessor data, CustomFurniture config) {
this.config = config; this.config = config;
this.dataAccessor = data; this.dataAccessor = data;
this.metaDataEntity = metaDataEntity; this.metaDataEntity = metaDataEntity;
@@ -257,7 +257,7 @@ public abstract class Furniture implements Cullable {
public abstract void destroy(); public abstract void destroy();
public FurnitureConfig config() { public CustomFurniture config() {
return this.config; return this.config;
} }

View File

@@ -112,7 +112,6 @@ public class FurnitureDataAccessor {
this.data.putString(VARIANT, variant); this.data.putString(VARIANT, variant);
} }
@SuppressWarnings("deprecation")
@ApiStatus.Obsolete @ApiStatus.Obsolete
public Optional<AnchorType> anchorType() { public Optional<AnchorType> anchorType() {
if (this.data.containsKey(ANCHOR_TYPE)) return Optional.of(AnchorType.byId(this.data.getInt(ANCHOR_TYPE))); if (this.data.containsKey(ANCHOR_TYPE)) return Optional.of(AnchorType.byId(this.data.getInt(ANCHOR_TYPE)));
@@ -120,7 +119,7 @@ public class FurnitureDataAccessor {
} }
@ApiStatus.Obsolete @ApiStatus.Obsolete
public FurnitureDataAccessor anchorType(@SuppressWarnings("deprecation") AnchorType type) { public FurnitureDataAccessor anchorType(AnchorType type) {
this.data.putInt(ANCHOR_TYPE, type.getId()); this.data.putInt(ANCHOR_TYPE, type.getId());
return this; return this;
} }

View File

@@ -16,19 +16,17 @@ public interface FurnitureManager extends Manageable {
Key FURNITURE_EXTRA_DATA_KEY = Key.of("craftengine:furniture_extra_data"); Key FURNITURE_EXTRA_DATA_KEY = Key.of("craftengine:furniture_extra_data");
Key FURNITURE_COLLISION = Key.of("craftengine:collision"); Key FURNITURE_COLLISION = Key.of("craftengine:collision");
String FURNITURE_ADMIN_NODE = "craftengine.furniture.admin";
ConfigParser parser(); ConfigParser parser();
void initSuggestions(); void initSuggestions();
Collection<Suggestion> cachedSuggestions(); Collection<Suggestion> cachedSuggestions();
Furniture place(WorldPosition position, FurnitureConfig furniture, FurnitureDataAccessor extraData, boolean playSound); Furniture place(WorldPosition position, CustomFurniture furniture, FurnitureDataAccessor extraData, boolean playSound);
Optional<FurnitureConfig> furnitureById(Key id); Optional<CustomFurniture> furnitureById(Key id);
Map<Key, FurnitureConfig> loadedFurniture(); Map<Key, CustomFurniture> loadedFurniture();
boolean isFurnitureMetaEntity(int entityId); boolean isFurnitureMetaEntity(int entityId);

View File

@@ -7,36 +7,29 @@ import java.util.Map;
public class FurnitureSounds { public class FurnitureSounds {
public static final SoundData EMPTY_SOUND = new SoundData(Key.of("minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_1); public static final SoundData EMPTY_SOUND = new SoundData(Key.of("minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_1);
public static final FurnitureSounds EMPTY = new FurnitureSounds(EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND); public static final FurnitureSounds EMPTY = new FurnitureSounds(EMPTY_SOUND, EMPTY_SOUND);
private final SoundData breakSound; private final SoundData breakSound;
private final SoundData placeSound; private final SoundData placeSound;
private final SoundData rotateSound;
public FurnitureSounds(SoundData breakSound, SoundData placeSound, SoundData rotateSound) { public FurnitureSounds(SoundData breakSound, SoundData placeSound) {
this.breakSound = breakSound; this.breakSound = breakSound;
this.placeSound = placeSound; this.placeSound = placeSound;
this.rotateSound = rotateSound;
} }
public static FurnitureSounds fromMap(Map<String, Object> map) { public static FurnitureSounds fromMap(Map<String, Object> map) {
if (map == null) return EMPTY; if (map == null) return EMPTY;
return new FurnitureSounds( return new FurnitureSounds(
SoundData.create(map.getOrDefault("break", "minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_0_8), SoundData.create(map.getOrDefault("break", "minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_0_8),
SoundData.create(map.getOrDefault("place", "minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_0_8), SoundData.create(map.getOrDefault("place", "minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_0_8)
SoundData.create(map.getOrDefault("rotate", "minecraft:intentionally_empty"), SoundData.SoundValue.FIXED_1, SoundData.SoundValue.FIXED_0_8)
); );
} }
public SoundData breakSound() { public SoundData breakSound() {
return breakSound; return this.breakSound;
} }
public SoundData placeSound() { public SoundData placeSound() {
return placeSound; return this.placeSound;
}
public SoundData rotateSound() {
return rotateSound;
} }
} }

View File

@@ -0,0 +1,8 @@
package net.momirealms.craftengine.core.entity.furniture.behavior;
import java.util.Map;
public interface FurnitureBehaviorFactory<T extends FurnitureBehavior> {
T create(Map<String, Object> properties);
}

View File

@@ -0,0 +1,6 @@
package net.momirealms.craftengine.core.entity.furniture.behavior;
import net.momirealms.craftengine.core.util.Key;
public record FurnitureBehaviorType<T extends FurnitureBehavior>(Key id, FurnitureBehaviorFactory<T> factory) {
}

View File

@@ -0,0 +1,34 @@
package net.momirealms.craftengine.core.entity.furniture.behavior;
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
import net.momirealms.craftengine.core.registry.BuiltInRegistries;
import net.momirealms.craftengine.core.registry.Registries;
import net.momirealms.craftengine.core.registry.WritableRegistry;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
import net.momirealms.craftengine.core.util.ResourceKey;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
public class FurnitureBehaviorTypes {
public static final Key EMPTY = Key.from("craftengine:empty");
public static FurnitureBehavior fromMap(@Nullable Map<String, Object> map) {
if (map == null || map.isEmpty()) return EmptyFurnitureBehavior.INSTANCE;
String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.furniture.behavior.missing_type");
Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE);
FurnitureBehaviorType<?> furnitureBehaviorType = BuiltInRegistries.FURNITURE_BEHAVIOR_TYPE.getValue(key);
if (furnitureBehaviorType == null) {
throw new LocalizedResourceConfigException("warning.config.furniture.behavior.invalid_type", type);
}
return furnitureBehaviorType.factory().create(map);
}
public static <T extends FurnitureBehavior> FurnitureBehaviorType<T> register(Key id, FurnitureBehaviorFactory<T> factory) {
FurnitureBehaviorType<T> type = new FurnitureBehaviorType<>(id, factory);
((WritableRegistry<FurnitureBehaviorType<?>>) BuiltInRegistries.FURNITURE_BEHAVIOR_TYPE)
.register(ResourceKey.create(Registries.BLOCK_BEHAVIOR_FACTORY.location(), id), type);
return type;
}
}

View File

@@ -4,11 +4,7 @@ import com.google.gson.JsonElement;
import net.momirealms.craftengine.core.item.*; import net.momirealms.craftengine.core.item.*;
import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
import net.momirealms.craftengine.core.util.GsonHelper; import net.momirealms.craftengine.core.util.*;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.util.Pair;
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
import net.momirealms.craftengine.core.util.TagParser;
import net.momirealms.sparrow.nbt.CompoundTag; import net.momirealms.sparrow.nbt.CompoundTag;
import net.momirealms.sparrow.nbt.Tag; import net.momirealms.sparrow.nbt.Tag;

View File

@@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.item.recipe.remainder;
import java.util.Map; import java.util.Map;
public interface CraftRemainderFactory { public interface CraftRemainderFactory<T extends CraftRemainder> {
CraftRemainder create(Map<String, Object> args); T create(Map<String, Object> args);
} }

View File

@@ -23,15 +23,15 @@ public class CraftRemainders {
register(HURT_AND_BREAK, HurtAndBreakRemainder.FACTORY); register(HURT_AND_BREAK, HurtAndBreakRemainder.FACTORY);
} }
public static void register(Key key, CraftRemainderFactory factory) { public static void register(Key key, CraftRemainderFactory<?> factory) {
((WritableRegistry<CraftRemainderFactory>) BuiltInRegistries.CRAFT_REMAINDER_FACTORY) ((WritableRegistry<CraftRemainderFactory<?>>) BuiltInRegistries.CRAFT_REMAINDER_FACTORY)
.register(ResourceKey.create(Registries.CRAFT_REMAINDER_FACTORY.location(), key), factory); .register(ResourceKey.create(Registries.CRAFT_REMAINDER_FACTORY.location(), key), factory);
} }
public static CraftRemainder fromMap(Map<String, Object> map) { public static CraftRemainder fromMap(Map<String, Object> map) {
String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.settings.craft_remainder.missing_type"); String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.settings.craft_remainder.missing_type");
Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE);
CraftRemainderFactory factory = BuiltInRegistries.CRAFT_REMAINDER_FACTORY.getValue(key); CraftRemainderFactory<?> factory = BuiltInRegistries.CRAFT_REMAINDER_FACTORY.getValue(key);
if (factory == null) { if (factory == null) {
throw new LocalizedResourceConfigException("warning.config.item.settings.craft_remainder.invalid_type", type); throw new LocalizedResourceConfigException("warning.config.item.settings.craft_remainder.invalid_type", type);
} }

View File

@@ -21,10 +21,10 @@ public class FixedCraftRemainder implements CraftRemainder {
return (Item<T>) CraftEngine.instance().itemManager().createWrappedItem(this.item, null); return (Item<T>) CraftEngine.instance().itemManager().createWrappedItem(this.item, null);
} }
public static class Factory implements CraftRemainderFactory { public static class Factory implements CraftRemainderFactory<FixedCraftRemainder> {
@Override @Override
public CraftRemainder create(Map<String, Object> args) { public FixedCraftRemainder create(Map<String, Object> args) {
Key item = Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(args.get("item"), "warning.config.item.settings.craft_remainder.fixed.missing_item")); Key item = Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(args.get("item"), "warning.config.item.settings.craft_remainder.fixed.missing_item"));
return new FixedCraftRemainder(item); return new FixedCraftRemainder(item);
} }

View File

@@ -28,10 +28,10 @@ public class HurtAndBreakRemainder implements CraftRemainder {
} }
} }
public static class Factory implements CraftRemainderFactory { public static class Factory implements CraftRemainderFactory<HurtAndBreakRemainder> {
@Override @Override
public CraftRemainder create(Map<String, Object> args) { public HurtAndBreakRemainder create(Map<String, Object> args) {
int damage = ResourceConfigUtils.getAsInt(args.getOrDefault("damage", 1), "damage"); int damage = ResourceConfigUtils.getAsInt(args.getOrDefault("damage", 1), "damage");
return new HurtAndBreakRemainder(damage); return new HurtAndBreakRemainder(damage);
} }

View File

@@ -30,10 +30,10 @@ public class RecipeBasedCraftRemainder implements CraftRemainder {
return this.fallback != null ? this.fallback.remainder(recipeId, item) : null; return this.fallback != null ? this.fallback.remainder(recipeId, item) : null;
} }
public static class Factory implements CraftRemainderFactory { public static class Factory implements CraftRemainderFactory<RecipeBasedCraftRemainder> {
@Override @Override
public CraftRemainder create(Map<String, Object> args) { public RecipeBasedCraftRemainder create(Map<String, Object> args) {
Map<Key, CraftRemainder> remainders = new HashMap<>(); Map<Key, CraftRemainder> remainders = new HashMap<>();
List<GroupedRemainder> remainderList = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.requireNonNullOrThrow(args.get("terms"), "warning.config.item.settings.craft_remainder.recipe_based.missing_terms"), map -> { List<GroupedRemainder> remainderList = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.requireNonNullOrThrow(args.get("terms"), "warning.config.item.settings.craft_remainder.recipe_based.missing_terms"), map -> {
List<Key> recipes = MiscUtils.getAsStringList(map.get("recipes")).stream().map(Key::of).toList(); List<Key> recipes = MiscUtils.getAsStringList(map.get("recipes")).stream().map(Key::of).toList();

View File

@@ -1,6 +1,5 @@
package net.momirealms.craftengine.core.plugin.config.template; package net.momirealms.craftengine.core.plugin.config.template;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument; import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument;
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
import net.momirealms.craftengine.core.util.TagParser; import net.momirealms.craftengine.core.util.TagParser;

View File

@@ -5,6 +5,7 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory;
import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.BlockEntityType;
import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory;
import net.momirealms.craftengine.core.block.properties.PropertyFactory; import net.momirealms.craftengine.core.block.properties.PropertyFactory;
import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory;
import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory;
import net.momirealms.craftengine.core.item.ItemDataModifierFactory; import net.momirealms.craftengine.core.item.ItemDataModifierFactory;
@@ -90,9 +91,10 @@ public class BuiltInRegistries {
public static final Registry<NetworkCodec<FriendlyByteBuf, ? extends ModPacket>> MOD_PACKET = createConstantBoundRegistry(Registries.MOD_PACKET, 16); public static final Registry<NetworkCodec<FriendlyByteBuf, ? extends ModPacket>> MOD_PACKET = createConstantBoundRegistry(Registries.MOD_PACKET, 16);
public static final Registry<BlockEntityType<?>> BLOCK_ENTITY_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_TYPE, 64); public static final Registry<BlockEntityType<?>> BLOCK_ENTITY_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_TYPE, 64);
public static final Registry<BlockEntityElementConfigFactory<?>> BLOCK_ENTITY_ELEMENT_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_ELEMENT_TYPE, 16); public static final Registry<BlockEntityElementConfigFactory<?>> BLOCK_ENTITY_ELEMENT_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_ELEMENT_TYPE, 16);
public static final Registry<CraftRemainderFactory> CRAFT_REMAINDER_FACTORY = createConstantBoundRegistry(Registries.CRAFT_REMAINDER_FACTORY, 16); public static final Registry<CraftRemainderFactory<?>> CRAFT_REMAINDER_FACTORY = createConstantBoundRegistry(Registries.CRAFT_REMAINDER_FACTORY, 16);
public static final Registry<FurnitureElementConfigFactory<?>> FURNITURE_ELEMENT_TYPE = createConstantBoundRegistry(Registries.FURNITURE_ELEMENT_TYPE, 16); public static final Registry<FurnitureElementConfigFactory<?>> FURNITURE_ELEMENT_TYPE = createConstantBoundRegistry(Registries.FURNITURE_ELEMENT_TYPE, 16);
public static final Registry<FurnitureHitBoxConfigFactory<?>> FURNITURE_HITBOX_TYPE = createConstantBoundRegistry(Registries.FURNITURE_HITBOX_TYPE, 16); public static final Registry<FurnitureHitBoxConfigFactory<?>> FURNITURE_HITBOX_TYPE = createConstantBoundRegistry(Registries.FURNITURE_HITBOX_TYPE, 16);
public static final Registry<FurnitureBehaviorType<?>> FURNITURE_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.FURNITURE_BEHAVIOR_TYPE, 32);
private static <T> Registry<T> createConstantBoundRegistry(ResourceKey<? extends Registry<T>> key, int expectedSize) { private static <T> Registry<T> createConstantBoundRegistry(ResourceKey<? extends Registry<T>> key, int expectedSize) {
return new ConstantBoundRegistry<>(key, expectedSize); return new ConstantBoundRegistry<>(key, expectedSize);

View File

@@ -5,6 +5,7 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory;
import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.BlockEntityType;
import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory;
import net.momirealms.craftengine.core.block.properties.PropertyFactory; import net.momirealms.craftengine.core.block.properties.PropertyFactory;
import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory;
import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory;
import net.momirealms.craftengine.core.item.ItemDataModifierFactory; import net.momirealms.craftengine.core.item.ItemDataModifierFactory;
@@ -92,7 +93,8 @@ public class Registries {
public static final ResourceKey<Registry<NetworkCodec<FriendlyByteBuf, ? extends ModPacket>>> MOD_PACKET = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("mod_packet_type")); public static final ResourceKey<Registry<NetworkCodec<FriendlyByteBuf, ? extends ModPacket>>> MOD_PACKET = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("mod_packet_type"));
public static final ResourceKey<Registry<BlockEntityType<?>>> BLOCK_ENTITY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_type")); public static final ResourceKey<Registry<BlockEntityType<?>>> BLOCK_ENTITY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_type"));
public static final ResourceKey<Registry<BlockEntityElementConfigFactory<?>>> BLOCK_ENTITY_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_element_type")); public static final ResourceKey<Registry<BlockEntityElementConfigFactory<?>>> BLOCK_ENTITY_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_element_type"));
public static final ResourceKey<Registry<CraftRemainderFactory>> CRAFT_REMAINDER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("craft_remainder_factory")); public static final ResourceKey<Registry<CraftRemainderFactory<?>>> CRAFT_REMAINDER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("craft_remainder_factory"));
public static final ResourceKey<Registry<FurnitureElementConfigFactory<?>>> FURNITURE_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_element_type")); public static final ResourceKey<Registry<FurnitureElementConfigFactory<?>>> FURNITURE_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_element_type"));
public static final ResourceKey<Registry<FurnitureHitBoxConfigFactory<?>>> FURNITURE_HITBOX_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_hitbox_type")); public static final ResourceKey<Registry<FurnitureHitBoxConfigFactory<?>>> FURNITURE_HITBOX_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_hitbox_type"));
public static final ResourceKey<Registry<FurnitureBehaviorType<?>>> FURNITURE_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_behavior_type"));
} }