diff --git a/src/main/java/appeng/block/crafting/CraftingMonitorBlockRendering.java b/src/main/java/appeng/block/crafting/CraftingMonitorBlockRendering.java index 2b0609c50..b8ac28762 100644 --- a/src/main/java/appeng/block/crafting/CraftingMonitorBlockRendering.java +++ b/src/main/java/appeng/block/crafting/CraftingMonitorBlockRendering.java @@ -1,15 +1,16 @@ package appeng.block.crafting; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.util.Identifier; + import appeng.bootstrap.BlockRenderingCustomizer; import appeng.bootstrap.IBlockRendering; import appeng.bootstrap.IItemRendering; import appeng.client.render.crafting.MonitorBakedModel; import appeng.client.render.model.AutoRotatingBakedModel; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.model.BakedModel; -import net.minecraft.util.Identifier; public class CraftingMonitorBlockRendering extends BlockRenderingCustomizer { diff --git a/src/main/java/appeng/container/slot/AppEngSlot.java b/src/main/java/appeng/container/slot/AppEngSlot.java index 0d2ddb895..7477cd35d 100644 --- a/src/main/java/appeng/container/slot/AppEngSlot.java +++ b/src/main/java/appeng/container/slot/AppEngSlot.java @@ -52,7 +52,7 @@ public class AppEngSlot extends Slot { super(EMPTY_INVENTORY, invSlot, x, y); this.itemHandler = inv; this.invSlot = invSlot; - this.backingSlot = inv.getSlot(idx); + this.backingSlot = inv.getSlot(invSlot); this.defX = x; this.defY = y; @@ -92,7 +92,7 @@ public class AppEngSlot extends Slot { return ItemStack.EMPTY; } - if (this.index >= this.itemHandler.getSlotCount()) { + if (this.invSlot >= this.itemHandler.getSlotCount()) { return ItemStack.EMPTY; } diff --git a/src/main/java/appeng/container/slot/CraftingMatrixSlot.java b/src/main/java/appeng/container/slot/CraftingMatrixSlot.java index f50708b0e..a763bdc65 100644 --- a/src/main/java/appeng/container/slot/CraftingMatrixSlot.java +++ b/src/main/java/appeng/container/slot/CraftingMatrixSlot.java @@ -30,8 +30,8 @@ public class CraftingMatrixSlot extends AppEngSlot { private final AEBaseContainer c; private final Inventory wrappedInventory; - public CraftingMatrixSlot(final AEBaseContainer c, final FixedItemInv inv, final int invSlot, - final int x, final int y) { + public CraftingMatrixSlot(final AEBaseContainer c, final FixedItemInv inv, final int invSlot, final int x, + final int y) { super(inv, invSlot, x, y); this.c = c; this.wrappedInventory = new WrapperInvItemHandler(inv); diff --git a/src/main/java/appeng/container/slot/MolecularAssemblerPatternSlot.java b/src/main/java/appeng/container/slot/MolecularAssemblerPatternSlot.java index 52efa9165..75782c9b9 100644 --- a/src/main/java/appeng/container/slot/MolecularAssemblerPatternSlot.java +++ b/src/main/java/appeng/container/slot/MolecularAssemblerPatternSlot.java @@ -30,11 +30,11 @@ public class MolecularAssemblerPatternSlot extends AppEngSlot { private final int slotIdx; - public MolecularAssemblerPatternSlot(final MolecularAssemblerContainer mac, final FixedItemInv inv, final int invSlot, - final int x, final int y) { + public MolecularAssemblerPatternSlot(final MolecularAssemblerContainer mac, final FixedItemInv inv, + final int invSlot, final int x, final int y) { super(inv, invSlot, x, y); this.mac = mac; - this.slotIdx = slotIdx; + this.slotIdx = invSlot; } @Override diff --git a/src/main/java/appeng/container/slot/OptionalRestrictedInputSlot.java b/src/main/java/appeng/container/slot/OptionalRestrictedInputSlot.java index 3bc87518d..c2be9f13b 100644 --- a/src/main/java/appeng/container/slot/OptionalRestrictedInputSlot.java +++ b/src/main/java/appeng/container/slot/OptionalRestrictedInputSlot.java @@ -27,8 +27,9 @@ public class OptionalRestrictedInputSlot extends RestrictedInputSlot { private final int groupNum; private final IOptionalSlotHost host; - public OptionalRestrictedInputSlot(final PlacableItemType valid, final FixedItemInv inv, final IOptionalSlotHost host, - final int invSlot, final int x, final int y, final int grpNum, final PlayerInventory invPlayer) { + public OptionalRestrictedInputSlot(final PlacableItemType valid, final FixedItemInv inv, + final IOptionalSlotHost host, final int invSlot, final int x, final int y, final int grpNum, + final PlayerInventory invPlayer) { super(valid, inv, invSlot, x, y, invPlayer); this.groupNum = grpNum; this.host = host; diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 8042b14f1..8072c8d4a 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -70,8 +70,10 @@ public interface AppEng { CableRenderMode getCableRenderMode(); /** - * Sets the player that is currently interacting with a cable or part attached to a cable. This will return that - * player's cable render mode from calls to {@link #getCableRenderMode()}, until another player or null is set. + * Sets the player that is currently interacting with a cable or part attached + * to a cable. This will return that player's cable render mode from calls to + * {@link #getCableRenderMode()}, until another player or null is set. + * * @param player Null to revert to the default cable render mode. */ void setPartInteractionPlayer(PlayerEntity player); diff --git a/src/main/java/appeng/core/AppEngBase.java b/src/main/java/appeng/core/AppEngBase.java index 4cfb422b5..3b20a6e62 100644 --- a/src/main/java/appeng/core/AppEngBase.java +++ b/src/main/java/appeng/core/AppEngBase.java @@ -3,6 +3,8 @@ package appeng.core; import java.util.OptionalLong; import java.util.function.Consumer; +import javax.annotation.Nullable; + import net.earthcomputer.libstructure.LibStructure; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; @@ -152,8 +154,6 @@ import appeng.worldgen.ChargedQuartzOreConfig; import appeng.worldgen.ChargedQuartzOreFeature; import appeng.worldgen.meteorite.MeteoriteStructure; -import javax.annotation.Nullable; - public abstract class AppEngBase implements AppEng { protected AdvancementTriggers advancementTriggers; diff --git a/src/main/java/appeng/core/api/definitions/ApiItems.java b/src/main/java/appeng/core/api/definitions/ApiItems.java index 97bb3fa22..a7617dd3f 100644 --- a/src/main/java/appeng/core/api/definitions/ApiItems.java +++ b/src/main/java/appeng/core/api/definitions/ApiItems.java @@ -27,6 +27,7 @@ import net.minecraft.entity.EntityDimensions; import net.minecraft.entity.SpawnGroup; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; +import net.minecraft.util.Rarity; import appeng.api.definitions.IItemDefinition; import appeng.api.definitions.IItems; @@ -246,7 +247,8 @@ public final class ApiItems implements IItems { .features(AEFeature.NETWORK_TOOL).build(); this.cellCreative = registry.item("creative_storage_cell", CreativeStorageCellItem::new) - .props(props -> props.maxCount(1)).features(AEFeature.STORAGE_CELLS, AEFeature.CREATIVE).build(); + .props(props -> props.maxCount(1).rarity(Rarity.EPIC)) + .features(AEFeature.STORAGE_CELLS, AEFeature.CREATIVE).build(); this.viewCell = registry.item("view_cell", ViewCellItem::new).props(props -> props.maxCount(1)) .features(AEFeature.VIEW_CELL).build(); diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 0e3252efc..4c0b0ed1e 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -18,7 +18,55 @@ package appeng.util; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Random; + +import javax.annotation.Nullable; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.Entity; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.CraftingInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.recipe.Recipe; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; +import net.minecraft.util.Formatting; +import net.minecraft.util.Identifier; +import net.minecraft.util.Util; +import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.RayTraceContext; +import net.minecraft.world.World; + import alexiil.mc.lib.attributes.fluid.volume.FluidVolume; + import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -64,50 +112,6 @@ import appeng.util.helpers.ItemComparisonHelper; import appeng.util.helpers.P2PHelper; import appeng.util.item.AEItemStack; import appeng.util.prioritylist.IPartitionList; -import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.recipe.Recipe; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.text.LiteralText; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import net.minecraft.util.Util; -import net.minecraft.util.hit.EntityHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.RayTraceContext; -import net.minecraft.world.World; - -import javax.annotation.Nullable; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Random; /** * @author AlgorithmX2 diff --git a/src/main/java/appeng/util/inv/WrapperCursorItemHandler.java b/src/main/java/appeng/util/inv/WrapperCursorItemHandler.java index 38dbf7429..20cfdc4c0 100644 --- a/src/main/java/appeng/util/inv/WrapperCursorItemHandler.java +++ b/src/main/java/appeng/util/inv/WrapperCursorItemHandler.java @@ -20,13 +20,17 @@ package appeng.util.inv; import net.minecraft.entity.player.PlayerInventory; -import alexiil.mc.lib.attributes.item.compat.FixedInventoryVanillaWrapper; -import alexiil.mc.lib.attributes.item.impl.DelegatingFixedItemInv; +import alexiil.mc.lib.attributes.item.impl.DirectFixedItemInv; -public class WrapperCursorItemHandler extends DelegatingFixedItemInv { +public class WrapperCursorItemHandler extends DirectFixedItemInv { + private final PlayerInventory inv; - public WrapperCursorItemHandler(PlayerInventory inventory) { - super(new FixedInventoryVanillaWrapper(inventory).getSubInv(0, 1)); + public WrapperCursorItemHandler(PlayerInventory PlayerInventory) { + super(1); + + this.inv = PlayerInventory; + this.forceSetInvStack(0, PlayerInventory.getCursorStack()); + setOwnerListener(view -> this.inv.setCursorStack(getInvStack(0))); } }