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

修改物品行为

This commit is contained in:
XiaoMoMi
2025-12-26 23:01:08 +08:00
parent 201df49643
commit f38c362c89
98 changed files with 193 additions and 827 deletions

View File

@@ -5,6 +5,7 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import net.momirealms.craftengine.core.block.behavior.BlockBehavior;
import net.momirealms.craftengine.core.block.behavior.EntityBlockBehavior;
import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElement;
import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfig;

View File

@@ -1,8 +1,8 @@
package net.momirealms.craftengine.core.block;
import net.momirealms.craftengine.core.block.behavior.BlockBehavior;
import net.momirealms.craftengine.core.block.behavior.EmptyBlockBehavior;
import net.momirealms.craftengine.core.block.properties.Property;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.loot.LootTable;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.context.Context;
@@ -10,6 +10,7 @@ import net.momirealms.craftengine.core.plugin.context.event.EventTrigger;
import net.momirealms.craftengine.core.plugin.context.function.Function;
import net.momirealms.craftengine.core.registry.Holder;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
import net.momirealms.sparrow.nbt.CompoundTag;
import net.momirealms.sparrow.nbt.Tag;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,11 +1,11 @@
package net.momirealms.craftengine.core.block;
import net.momirealms.craftengine.core.block.properties.Property;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.loot.LootTable;
import net.momirealms.craftengine.core.plugin.context.Context;
import net.momirealms.craftengine.core.plugin.context.event.EventTrigger;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
import net.momirealms.sparrow.nbt.CompoundTag;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@@ -1,5 +1,6 @@
package net.momirealms.craftengine.core.block;
import net.momirealms.craftengine.core.block.behavior.BlockBehavior;
import net.momirealms.craftengine.core.util.ObjectHolder;
/**

View File

@@ -1,6 +1,7 @@
package net.momirealms.craftengine.core.block;
import it.unimi.dsi.fastutil.objects.Reference2ObjectArrayMap;
import net.momirealms.craftengine.core.block.behavior.BlockBehavior;
import net.momirealms.craftengine.core.block.behavior.EntityBlockBehavior;
import net.momirealms.craftengine.core.block.entity.BlockEntity;
import net.momirealms.craftengine.core.block.entity.BlockEntityType;

View File

@@ -1,6 +1,5 @@
package net.momirealms.craftengine.core.block.behavior;
import net.momirealms.craftengine.core.block.BlockBehavior;
import net.momirealms.craftengine.core.block.CustomBlock;
public abstract class AbstractBlockBehavior extends BlockBehavior {

View File

@@ -1,24 +1,24 @@
package net.momirealms.craftengine.core.block;
package net.momirealms.craftengine.core.block.behavior;
import net.momirealms.craftengine.core.block.behavior.EntityBlockBehavior;
import net.momirealms.craftengine.core.block.CustomBlock;
import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.entity.player.InteractionResult;
import net.momirealms.craftengine.core.item.CustomItem;
import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.item.behavior.BlockBoundItemBehavior;
import net.momirealms.craftengine.core.item.behavior.ItemBehavior;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.item.context.UseOnContext;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.world.BlockAccessor;
import net.momirealms.craftengine.core.world.BlockPos;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
import net.momirealms.craftengine.core.world.context.UseOnContext;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.Optional;
import java.util.concurrent.Callable;
// todo move the package on 1.0
public abstract class BlockBehavior {
@SuppressWarnings("unchecked")

View File

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

View File

@@ -1,6 +1,5 @@
package net.momirealms.craftengine.core.block.behavior;
import net.momirealms.craftengine.core.block.BlockBehavior;
import net.momirealms.craftengine.core.block.CustomBlock;
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
import net.momirealms.craftengine.core.registry.BuiltInRegistries;

View File

@@ -1,7 +1,7 @@
package net.momirealms.craftengine.core.block.behavior;
import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
public interface CanBeReplacedBlockBehavior {

View File

@@ -1,6 +1,5 @@
package net.momirealms.craftengine.core.block.behavior;
import net.momirealms.craftengine.core.block.BlockBehavior;
import net.momirealms.craftengine.core.block.CustomBlock;
import net.momirealms.craftengine.core.block.EmptyBlock;

View File

@@ -1,13 +1,11 @@
package net.momirealms.craftengine.core.block.entity.render;
import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElement;
import net.momirealms.craftengine.core.entity.Cullable;
import net.momirealms.craftengine.core.entity.player.Player;
import net.momirealms.craftengine.core.plugin.entityculling.CullingData;
import net.momirealms.craftengine.core.world.Cullable;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
@ApiStatus.Experimental
public class ConstantBlockEntityRenderer implements Cullable {
private final BlockEntityElement[] elements;
public final CullingData cullingData;

View File

@@ -1,9 +1,7 @@
package net.momirealms.craftengine.core.block.entity.render;
import net.momirealms.craftengine.core.entity.player.Player;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Experimental
public interface DynamicBlockEntityRenderer {
void show(Player player);

View File

@@ -1,10 +1,10 @@
package net.momirealms.craftengine.core.block.properties;
import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.util.Direction;
import net.momirealms.craftengine.core.util.HorizontalDirection;
import net.momirealms.craftengine.core.util.SegmentedAngle;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
import net.momirealms.sparrow.nbt.Tag;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.core.world;
package net.momirealms.craftengine.core.entity;
import net.momirealms.craftengine.core.entity.player.Player;
import net.momirealms.craftengine.core.plugin.entityculling.CullingData;

View File

@@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import net.momirealms.craftengine.core.entity.AbstractEntity;
import net.momirealms.craftengine.core.entity.Cullable;
import net.momirealms.craftengine.core.entity.Entity;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElement;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfig;
@@ -19,7 +20,6 @@ import net.momirealms.craftengine.core.plugin.entityculling.CullingData;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.util.LazyReference;
import net.momirealms.craftengine.core.util.QuaternionUtils;
import net.momirealms.craftengine.core.world.Cullable;
import net.momirealms.craftengine.core.world.Vec3d;
import net.momirealms.craftengine.core.world.World;
import net.momirealms.craftengine.core.world.WorldPosition;

View File

@@ -3,8 +3,8 @@ package net.momirealms.craftengine.core.item.behavior;
import net.momirealms.craftengine.core.entity.player.InteractionHand;
import net.momirealms.craftengine.core.entity.player.InteractionResult;
import net.momirealms.craftengine.core.entity.player.Player;
import net.momirealms.craftengine.core.item.context.UseOnContext;
import net.momirealms.craftengine.core.world.World;
import net.momirealms.craftengine.core.world.context.UseOnContext;
import org.jetbrains.annotations.Nullable;
public abstract class ItemBehavior {

View File

@@ -0,0 +1,6 @@
package net.momirealms.craftengine.core.item.behavior;
import net.momirealms.craftengine.core.util.Key;
public record ItemBehaviorType(Key id, ItemBehaviorFactory factory) {
}

View File

@@ -13,21 +13,23 @@ import java.nio.file.Path;
import java.util.Map;
public class ItemBehaviors {
public static final Key EMPTY = Key.withDefaultNamespace("empty", Key.DEFAULT_NAMESPACE);
public static final ItemBehaviorType EMPTY = register(Key.withDefaultNamespace("empty", Key.DEFAULT_NAMESPACE), EmptyItemBehavior.FACTORY);
public static void register(Key key, ItemBehaviorFactory factory) {
((WritableRegistry<ItemBehaviorFactory>) BuiltInRegistries.ITEM_BEHAVIOR_FACTORY)
.register(ResourceKey.create(Registries.ITEM_BEHAVIOR_FACTORY.location(), key), factory);
public static ItemBehaviorType register(Key key, ItemBehaviorFactory factory) {
ItemBehaviorType type = new ItemBehaviorType(key, factory);
((WritableRegistry<ItemBehaviorType>) BuiltInRegistries.ITEM_BEHAVIOR_TYPE)
.register(ResourceKey.create(Registries.ITEM_BEHAVIOR_TYPE.location(), key), type);
return type;
}
public static ItemBehavior fromMap(Pack pack, Path path, String node, Key id, Map<String, Object> map) {
if (map == null || map.isEmpty()) return EmptyItemBehavior.INSTANCE;
String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.behavior.missing_type");
Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE);
ItemBehaviorFactory factory = BuiltInRegistries.ITEM_BEHAVIOR_FACTORY.getValue(key);
if (factory == null) {
ItemBehaviorType behaviorType = BuiltInRegistries.ITEM_BEHAVIOR_TYPE.getValue(key);
if (behaviorType == null) {
throw new LocalizedResourceConfigException("warning.config.item.behavior.invalid_type", type);
}
return factory.create(pack, path, node, id, map);
return behaviorType.factory().create(pack, path, node, id, map);
}
}

View File

@@ -1,162 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
import java.util.Map;
import java.util.UUID;
public class Animation {
@SerializedName("uuid")
private UUID uuid;
@SerializedName("name")
private String name;
@SerializedName("loop")
private String loop;
@SerializedName("override")
private boolean override;
@SerializedName("length")
private int length;
@SerializedName("snapping")
private int snapping;
@SerializedName("selected")
private boolean selected;
@SerializedName("anim_time_update")
private String anim_time_update;
@SerializedName("blend_weight")
private String blend_weight;
@SerializedName("start_delay")
private String start_delay;
@SerializedName("loop_delay")
private String loop_delay;
@SerializedName("animators")
private Map<UUID, Animator> animators;
public UUID uuid() {
return uuid;
}
public String name() {
return name;
}
public String loop() {
return loop;
}
public boolean override() {
return override;
}
public int length() {
return length;
}
public int snapping() {
return snapping;
}
public boolean selected() {
return selected;
}
public String animTimeUpdate() {
return anim_time_update;
}
public String blendWeight() {
return blend_weight;
}
public String startDelay() {
return start_delay;
}
public String loopDelay() {
return loop_delay;
}
public Map<UUID, Animator> animators() {
return animators;
}
public static class Animator {
@SerializedName("name")
private String name;
@SerializedName("type")
private String type;
@SerializedName("keyframes")
private KeyFrame[] keyframes;
public String name() {
return name;
}
public String type() {
return type;
}
public KeyFrame[] keyframes() {
return keyframes;
}
public static class KeyFrame {
@SerializedName("channel")
private String channel;
@SerializedName("data_points")
private DataPoint[] data_points;
@SerializedName("uuid")
private UUID uuid;
@SerializedName("time")
private double time;
@SerializedName("color")
private int color;
@SerializedName("interpolation")
private String interpolation;
public String channel() {
return channel;
}
public DataPoint[] dataPoints() {
return data_points;
}
public UUID uuid() {
return uuid;
}
public double time() {
return time;
}
public int color() {
return color;
}
public String interpolation() {
return interpolation;
}
public static class DataPoint {
@SerializedName("x")
private String x;
@SerializedName("y")
private String y;
@SerializedName("z")
private String z;
public String x() {
return x;
}
public String y() {
return y;
}
public String z() {
return z;
}
}
}
}
}

View File

@@ -1,48 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
public class BBModel {
@SerializedName("name")
private String name;
@SerializedName("meta")
private ModelMeta meta;
@SerializedName("model_identifier")
private String model_identifier;
@SerializedName("visible_box")
private int[] visible_box;
@SerializedName("elements")
private Element[] elements;
@SerializedName("outliner")
private OutLiner[] outliner;
@SerializedName("textures")
private Texture[] textures;
public String name() {
return name;
}
public ModelMeta meta() {
return meta;
}
public String modelIdentifier() {
return model_identifier;
}
public int[] visibleBox() {
return visible_box;
}
public Element[] elements() {
return elements;
}
public OutLiner[] outliner() {
return outliner;
}
public Texture[] textures() {
return textures;
}
}

View File

@@ -1,93 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
import java.util.UUID;
public class Element {
@SerializedName("type")
private String type;
@SerializedName("uuid")
private UUID uuid;
@SerializedName("name")
private String name;
@SerializedName("box_uv")
private boolean box_uv;
@SerializedName("rescale")
private boolean rescale;
@SerializedName("locked")
private boolean locked;
@SerializedName("light_emission")
private int light_emission;
@SerializedName("render_order")
private String render_order;
@SerializedName("allow_mirror_modeling")
private boolean allow_mirror_modeling;
@SerializedName("from")
private double[] from;
@SerializedName("to")
private double[] to;
@SerializedName("autouv")
private int autouv;
@SerializedName("color")
private int color;
@SerializedName("origin")
private double[] origin;
public String type() {
return type;
}
public UUID uuid() {
return uuid;
}
public String name() {
return name;
}
public boolean box_uv() {
return box_uv;
}
public boolean rescale() {
return rescale;
}
public boolean locked() {
return locked;
}
public int lightEmission() {
return light_emission;
}
public String renderOrder() {
return render_order;
}
public boolean allowMirrorModeling() {
return allow_mirror_modeling;
}
public double[] from() {
return from;
}
public double[] to() {
return to;
}
public int autoUV() {
return autouv;
}
public int color() {
return color;
}
public double[] origin() {
return origin;
}
}

View File

@@ -1,57 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
public class Faces {
@SerializedName("north")
private Face north;
@SerializedName("east")
private Face east;
@SerializedName("south")
private Face south;
@SerializedName("west")
private Face west;
@SerializedName("up")
private Face up;
@SerializedName("down")
private Face down;
public Face north() {
return north;
}
public Face east() {
return east;
}
public Face south() {
return south;
}
public Face west() {
return west;
}
public Face up() {
return up;
}
public Face down() {
return down;
}
public static class Face {
@SerializedName("uv")
private double[] uv;
@SerializedName("texture")
private int texture;
public double[] uv() {
return uv;
}
public int texture() {
return texture;
}
}
}

View File

@@ -1,24 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
public class ModelMeta {
@SerializedName("format_version")
private String format_version;
@SerializedName("model_format")
private String model_format;
@SerializedName("box_uv")
private boolean box_uv;
public String formatVersion() {
return format_version;
}
public String modelFormat() {
return model_format;
}
public boolean boxUV() {
return box_uv;
}
}

View File

@@ -1,74 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
import java.util.UUID;
public class OutLiner {
@SerializedName("name")
private String name;
@SerializedName("origin")
private double[] origin;
@SerializedName("color")
private int color;
@SerializedName("uuid")
private UUID uuid;
@SerializedName("export")
private boolean export;
@SerializedName("locked")
private boolean locked;
@SerializedName("visibility")
private boolean visibility;
@SerializedName("mirror_uv")
private boolean mirror_uv;
@SerializedName("autouv")
private boolean autouv;
@SerializedName("isOpen")
private boolean is_open;
@SerializedName("children")
private OutLiner[] children;
public String name() {
return name;
}
public double[] origin() {
return origin;
}
public int color() {
return color;
}
public UUID uuid() {
return uuid;
}
public boolean export() {
return export;
}
public boolean locked() {
return locked;
}
public boolean visibility() {
return visibility;
}
public boolean mirrorUV() {
return mirror_uv;
}
public boolean autoUV() {
return autouv;
}
public boolean isOpen() {
return is_open;
}
public OutLiner[] children() {
return children;
}
}

View File

@@ -1,18 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
public class Resolution {
@SerializedName("width")
private int width;
@SerializedName("height")
private int height;
public int width() {
return width;
}
public int height() {
return height;
}
}

View File

@@ -1,164 +0,0 @@
package net.momirealms.craftengine.core.plugin.config.blockbench;
import com.google.gson.annotations.SerializedName;
import java.util.UUID;
public class Texture {
@SerializedName("path")
private String path;
@SerializedName("name")
private String name;
@SerializedName("folder")
private String folder;
@SerializedName("namespace")
private String namespace;
@SerializedName("id")
private String id;
@SerializedName("group")
private String group;
@SerializedName("width")
private int width;
@SerializedName("height")
private int height;
@SerializedName("uv_width")
private int uv_width;
@SerializedName("uv_height")
private int uv_height;
@SerializedName("particle")
private boolean particle;
@SerializedName("use_as_default")
private boolean use_as_default;
@SerializedName("layers_enabled")
private boolean layers_enabled;
@SerializedName("sync_to_project")
private String sync_to_project;
@SerializedName("render_mode")
private String render_mode;
@SerializedName("render_sides")
private String render_sides;
@SerializedName("frame_time")
private int frame_time;
@SerializedName("frame_order_type")
private String frame_order_type;
@SerializedName("frame_order")
private String frame_order;
@SerializedName("frame_interpolate")
private boolean frame_interpolate;
@SerializedName("visible")
private boolean visible;
@SerializedName("internal")
private boolean internal;
@SerializedName("saved")
private boolean saved;
@SerializedName("uuid")
private UUID uuid;
@SerializedName("relative_path")
private String relative_path;
@SerializedName("source")
private String source;
public String path() {
return path;
}
public String name() {
return name;
}
public String folder() {
return folder;
}
public String namespace() {
return namespace;
}
public String id() {
return id;
}
public String group() {
return group;
}
public int width() {
return width;
}
public int height() {
return height;
}
public int uvWidth() {
return uv_width;
}
public int uvHeight() {
return uv_height;
}
public boolean particle() {
return particle;
}
public boolean useAsDefault() {
return use_as_default;
}
public boolean layersEnabled() {
return layers_enabled;
}
public String syncToProject() {
return sync_to_project;
}
public String renderMode() {
return render_mode;
}
public String renderSides() {
return render_sides;
}
public int frameTime() {
return frame_time;
}
public String frameOrderType() {
return frame_order_type;
}
public String frameOrder() {
return frame_order;
}
public boolean frameInterpolate() {
return frame_interpolate;
}
public boolean visible() {
return visible;
}
public boolean internal() {
return internal;
}
public boolean saved() {
return saved;
}
public UUID uuid() {
return uuid;
}
public String relativePath() {
return relative_path;
}
public String source() {
return source;
}
}

View File

@@ -8,7 +8,7 @@ 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.hitbox.FurnitureHitBoxConfigFactory;
import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory;
import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType;
import net.momirealms.craftengine.core.item.equipment.EquipmentFactory;
import net.momirealms.craftengine.core.item.processor.ItemProcessorType;
import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe;
@@ -54,7 +54,7 @@ public class BuiltInRegistries {
public static final Registry<CustomBlock> BLOCK = createDynamicBoundRegistry(Registries.BLOCK, 512);
public static final Registry<BlockBehaviorType> BLOCK_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.BLOCK_BEHAVIOR_TYPE, 64);
public static final Registry<ItemProcessorType<?>> ITEM_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.ITEM_PROCESSOR_TYPE, 64);
public static final Registry<ItemBehaviorFactory> ITEM_BEHAVIOR_FACTORY = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_FACTORY, 64);
public static final Registry<ItemBehaviorType> ITEM_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_TYPE, 64);
public static final Registry<PropertyFactory> PROPERTY_FACTORY = createConstantBoundRegistry(Registries.PROPERTY_FACTORY, 16);
public static final Registry<LootFunctionFactory<?>> LOOT_FUNCTION_FACTORY = createConstantBoundRegistry(Registries.LOOT_FUNCTION_FACTORY, 32);
public static final Registry<ConditionFactory<LootContext>> LOOT_CONDITION_FACTORY = createConstantBoundRegistry(Registries.LOOT_CONDITION_FACTORY, 32);

View File

@@ -8,7 +8,7 @@ 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.hitbox.FurnitureHitBoxConfigFactory;
import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory;
import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType;
import net.momirealms.craftengine.core.item.equipment.EquipmentFactory;
import net.momirealms.craftengine.core.item.processor.ItemProcessorType;
import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe;
@@ -57,7 +57,7 @@ public class Registries {
public static final ResourceKey<Registry<ItemProcessorType<?>>> ITEM_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_processor_type"));
public static final ResourceKey<Registry<PropertyFactory>> PROPERTY_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_factory"));
public static final ResourceKey<Registry<BlockBehaviorType>> BLOCK_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_behavior_type"));
public static final ResourceKey<Registry<ItemBehaviorFactory>> ITEM_BEHAVIOR_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_factory"));
public static final ResourceKey<Registry<ItemBehaviorType>> ITEM_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_type"));
public static final ResourceKey<Registry<LootFunctionFactory<?>>> LOOT_FUNCTION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_factory"));
public static final ResourceKey<Registry<LootEntryContainerFactory<?>>> LOOT_ENTRY_CONTAINER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_entry_container_factory"));
public static final ResourceKey<Registry<ConditionFactory<LootContext>>> LOOT_CONDITION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_condition_factory"));

View File

@@ -4,8 +4,8 @@ import net.momirealms.craftengine.core.block.BlockStateWrapper;
import net.momirealms.craftengine.core.block.CustomBlock;
import net.momirealms.craftengine.core.block.ImmutableBlockState;
import net.momirealms.craftengine.core.block.StatePropertyAccessor;
import net.momirealms.craftengine.core.item.context.BlockPlaceContext;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.world.context.BlockPlaceContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@@ -1,7 +1,7 @@
package net.momirealms.craftengine.core.world.chunk.client;
import net.momirealms.craftengine.core.entity.Cullable;
import net.momirealms.craftengine.core.entity.player.Player;
import net.momirealms.craftengine.core.world.Cullable;
public class VirtualCullableObject {
public Cullable cullable;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.core.item.context;
package net.momirealms.craftengine.core.world.context;
import net.momirealms.craftengine.core.entity.player.InteractionHand;
import net.momirealms.craftengine.core.entity.player.Player;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.core.item.context;
package net.momirealms.craftengine.core.world.context;
import net.momirealms.craftengine.core.entity.player.InteractionHand;
import net.momirealms.craftengine.core.entity.player.Player;