mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-22 08:29:21 +00:00
优化命名
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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>"
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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) {
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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"));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user