diff --git a/Common/build.gradle b/Common/build.gradle index f3f0b5a..be98ed0 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -24,7 +24,6 @@ shadowJar { unimined.minecraft { fabric { loader fabric_loader - accessWidener(project.file("src/main/resources/${mod_id}.aw")) } defaultRemapJar = false diff --git a/Common/gradle.properties b/Common/gradle.properties index a0f6acd..65fcf04 100644 --- a/Common/gradle.properties +++ b/Common/gradle.properties @@ -1,2 +1,2 @@ # We don't need the common jar to be remapped -fabric.loom.dontRemap = true \ No newline at end of file +fabric.loom.dontRemap=true \ No newline at end of file diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ISidedTickable.java b/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ISidedTickable.java deleted file mode 100644 index 91a9038..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ISidedTickable.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hypherionmc.craterlib.api.blockentity; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -/** - * @author HypherionSA - * Helper Interface for BlockEntities that tick both Client and Server Side - */ -public interface ISidedTickable { - - void serverTick(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity); - void clientTick(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ITickable.java b/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ITickable.java deleted file mode 100644 index 605eff8..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/ITickable.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hypherionmc.craterlib.api.blockentity; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -/** - * @author HypherionSA - * Helper Interface for BlockEntities that only tick on a single side - */ -public interface ITickable { - - void tick(Level level, BlockPos pos, BlockState state, BlockEntity blockEntity); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/CraterCapabilityHandler.java b/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/CraterCapabilityHandler.java deleted file mode 100644 index 70cf116..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/CraterCapabilityHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hypherionmc.craterlib.api.blockentity.caps; - -/** - * @author HypherionSA - * Wrapper class for Forge capabilities to remove duplicate code from modules - */ -public enum CraterCapabilityHandler { - ENERGY, - ITEM, - FLUID -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/ICraterCapProvider.java b/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/ICraterCapProvider.java deleted file mode 100644 index 4f49dea..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/blockentity/caps/ICraterCapProvider.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hypherionmc.craterlib.api.blockentity.caps; - -import net.minecraft.core.Direction; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -/** - * @author HypherionSA - * Interface for BlockEntities to expose "capabilities" across fabric/forge - */ -public interface ICraterCapProvider { - - Optional getCapability(CraterCapabilityHandler handler, @Nullable Direction side); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java b/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java deleted file mode 100644 index 9a72737..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hypherionmc.craterlib.api.creativetab; - -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.CreativeModeTabs; -import net.minecraft.world.item.ItemStack; - -import java.util.function.Supplier; - -/** - * @author HypherionSA - * Helper class to create custom creative tabs from modules - */ -public class CraterCreativeModeTab implements Supplier { - - private final ResourceLocation resourceLocation; - private final Supplier icon; - private final String backgroundSuffix; - private CreativeModeTab tab; - private final ResourceKey resourceKey; - - protected CraterCreativeModeTab(Builder builder) { - this.resourceLocation = builder.location; - this.icon = builder.stack; - this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix; - this.resourceKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB, this.resourceLocation); - - CreativeTabRegistry.registerTab(this); - } - - public ResourceLocation getResourceLocation() { - return resourceLocation; - } - - public Supplier getIcon() { - return icon; - } - - public String getBackgroundSuffix() { - return backgroundSuffix; - } - - public void setTab(CreativeModeTab tab) { - this.tab = tab; - } - - public ResourceKey getResourceKey() { - return resourceKey; - } - - public static class Builder { - private final ResourceLocation location; - private Supplier stack; - private String backgroundSuffix; - - public Builder(ResourceLocation location) { - this.location = location; - } - - public CraterCreativeModeTab.Builder setIcon(Supplier icon) { - stack = icon; - return this; - } - - public CraterCreativeModeTab.Builder backgroundSuffix(String backgroundSuffix) { - this.backgroundSuffix = backgroundSuffix; - return this; - } - - public CraterCreativeModeTab build() { - return new CraterCreativeModeTab(this); - } - } - - @Override - public CreativeModeTab get() { - return tab == null ? CreativeModeTabs.getDefaultTab() : tab; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/ColorRegistrationEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/ColorRegistrationEvent.java deleted file mode 100644 index f7fd9c4..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/ColorRegistrationEvent.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hypherionmc.craterlib.api.event.client; - -import com.hypherionmc.craterlib.core.event.CraterEvent; -import net.minecraft.client.color.block.BlockColors; -import net.minecraft.client.color.item.ItemColors; - -/** - * @author HypherionSA - * A wrapped event to allow Block and Item Color Registration - */ -public class ColorRegistrationEvent { - - public static class Blocks extends CraterEvent { - - private final BlockColors colors; - - public Blocks(BlockColors colors) { - this.colors = colors; - } - - public BlockColors getColors() { - return colors; - } - - @Override - public boolean canCancel() { - return false; - } - } - - public static class Items extends CraterEvent { - - private final ItemColors colors; - - public Items(ItemColors colors) { - this.colors = colors; - } - - public ItemColors getColors() { - return colors; - } - - @Override - public boolean canCancel() { - return false; - } - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/PlayerJoinRealmEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/PlayerJoinRealmEvent.java index ff073b1..97a4cd2 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/PlayerJoinRealmEvent.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/event/client/PlayerJoinRealmEvent.java @@ -5,15 +5,15 @@ import com.mojang.realmsclient.dto.RealmsServer; public class PlayerJoinRealmEvent extends CraterEvent { - private final RealmsServer server; + private final RealmsServer server; - public PlayerJoinRealmEvent(RealmsServer server) { - this.server = server; - } + public PlayerJoinRealmEvent(RealmsServer server) { + this.server = server; + } - public RealmsServer getServer() { - return server; - } + public RealmsServer getServer() { + return server; + } @Override public boolean canCancel() { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerChatEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerChatEvent.java index 5b1d371..e069042 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerChatEvent.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerChatEvent.java @@ -17,14 +17,14 @@ public class CraterServerChatEvent extends CraterEvent { this.component = component; } - public void setComponent(Component component) { - this.component = component; - } - public Component getComponent() { return component; } + public void setComponent(Component component) { + this.component = component; + } + public String getUsername() { return username; } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerLifecycleEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerLifecycleEvent.java index 877e86b..584b3f6 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerLifecycleEvent.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/event/server/CraterServerLifecycleEvent.java @@ -5,7 +5,8 @@ import net.minecraft.server.MinecraftServer; public class CraterServerLifecycleEvent extends CraterEvent { - public CraterServerLifecycleEvent() {} + public CraterServerLifecycleEvent() { + } @Override public boolean canCancel() { @@ -27,19 +28,22 @@ public class CraterServerLifecycleEvent extends CraterEvent { public static class Started extends CraterServerLifecycleEvent { - public Started() {} + public Started() { + } } public static class Stopping extends CraterServerLifecycleEvent { - public Stopping() {} + public Stopping() { + } } public static class Stopped extends CraterServerLifecycleEvent { - public Stopped() {} + public Stopped() { + } } } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/CustomRenderType.java b/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/CustomRenderType.java deleted file mode 100644 index 35ee632..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/CustomRenderType.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hypherionmc.craterlib.api.rendering; - -import net.minecraft.client.renderer.RenderType; - -/** - * @author HypherionSA - * Helper Interface for defining Block render types - */ -public interface CustomRenderType { - - /** - * Get the render type of the block - */ - RenderType getCustomRenderType(); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/DyableBlock.java b/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/DyableBlock.java deleted file mode 100644 index 75df66c..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/DyableBlock.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.hypherionmc.craterlib.api.rendering; - -import net.minecraft.client.color.block.BlockColor; -import net.minecraft.world.item.DyeColor; - -/** - * @author HypherionSA - * Helper Interface for Dyable Blocks - */ -public interface DyableBlock { - - /** - * Get the BlockColor handler for the block - */ - BlockColor dyeHandler(); - - /** - * Get the default Dye Color for Un-dyed states - */ - DyeColor defaultDyeColor(); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/ItemDyable.java b/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/ItemDyable.java deleted file mode 100644 index 616e286..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/rendering/ItemDyable.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hypherionmc.craterlib.api.rendering; - -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; - -/** - * @author HypherionSA - * Helper Interface for Dyable Items - */ -public interface ItemDyable { - - /** - * Get the DyeColor of the Item - */ - public DyeColor getColor(ItemStack stack); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java index 06202d8..ed34f6b 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java @@ -6,7 +6,8 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.EditBox; -/** Copied from Cloth Config Lite +/** + * Copied from Cloth Config Lite * ... */ public class AbstractConfigWidget extends BaseWidget { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java index 3e58ce5..2478c7d 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java @@ -6,7 +6,6 @@ import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.narration.NarratedElementType; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.NotNull; /** * @author HypherionSA diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java index b7266bb..821c749 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java @@ -54,7 +54,8 @@ public abstract class Option extends AbstractContainerEventHandler { return listener; } - public void onAdd() {} + public void onAdd() { + } protected void reset() { onAdd(); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java index de9552c..cc05cec 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java @@ -10,7 +10,7 @@ import java.util.function.Function; * Copied from Cloth Config Lite * ... */ -public class TextConfigOption extends AbstractConfigWidget { +public class TextConfigOption extends AbstractConfigWidget { private final Function toString; private final Function fromString; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java index d32b0ea..03ea11d 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java @@ -10,7 +10,7 @@ import java.util.function.Function; * Copied from Cloth Config Lite * ... */ -public class ToggleButton extends AbstractConfigWidget { +public class ToggleButton extends AbstractConfigWidget { private final List options; private final Function toComponent; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/registry/ClientRegistry.java b/Common/src/main/java/com/hypherionmc/craterlib/client/registry/ClientRegistry.java deleted file mode 100644 index 548a5eb..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/registry/ClientRegistry.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hypherionmc.craterlib.client.registry; - -import com.hypherionmc.craterlib.core.platform.ClientPlatform; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import org.jetbrains.annotations.NotNull; - -/** - * @author HypherionSA - * Helper for registering Block and Item color handlers - */ -public class ClientRegistry { - - /** - * Register Block Color Handlers - * - * @param colors Existing block colors obtained from {@link com.hypherionmc.craterlib.api.event.client.ColorRegistrationEvent} - * @param blocks The blocks registered for the module - */ - /*public static void registerBlockColors(@NotNull BlockColors colors, @NotNull RegistrationProvider blocks) { - blocks.getEntries().forEach(blockRegistryObject -> { - if (blockRegistryObject.get() instanceof DyableBlock dyableBlock) { - colors.register(dyableBlock.dyeHandler(), (Block) dyableBlock); - } - }); - }*/ - - /** - * Register Item Color Handlers - * - * @param colors Existing item colors obtained from {@link com.hypherionmc.craterlib.api.event.client.ColorRegistrationEvent} - * @param items The items registered for the module - */ - /*public static void registerItemColors(@NotNull ItemColors colors, @NotNull RegistrationProvider items) { - items.getEntries().forEach(itemRegistryObject -> { - if (itemRegistryObject.get() instanceof ItemDyable itemDyable) { - colors.register(new ItemColorHandler(), (Item) itemDyable); - } - }); - }*/ - - /** - * Register a {@link net.minecraft.client.renderer.blockentity.BlockEntityRenderer} for a BlockEntity - * @param blockEntityType The BlockEntity the renderer belongs to - * @param blockEntityRendererFactory The renderer factory - */ - public static void registerBlockEntityRenderer(@NotNull BlockEntityType blockEntityType, @NotNull BlockEntityRendererProvider blockEntityRendererFactory) { - ClientPlatform.INSTANCE.registerBlockEntityRenderer(blockEntityType, blockEntityRendererFactory); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/rendering/ItemColorHandler.java b/Common/src/main/java/com/hypherionmc/craterlib/client/rendering/ItemColorHandler.java deleted file mode 100644 index 8d0de97..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/rendering/ItemColorHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hypherionmc.craterlib.client.rendering; - -import com.hypherionmc.craterlib.api.rendering.ItemDyable; -import com.hypherionmc.craterlib.util.RenderUtils; -import net.minecraft.client.color.item.ItemColor; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.NotNull; - -/** - * @author HypherionSA - * Helper Class for Dyable Items implementing a simple color handler - */ -public class ItemColorHandler implements ItemColor { - - /*** - * Get the color for the Item/ItemStack - * @param stack The ItemStack to read the color from - * @param tintIndex No Comment - * @return Integer value of the color - */ - @Override - public int getColor(@NotNull ItemStack stack, int tintIndex) { - return this.getColorFromStack(stack); - } - - /** - * Get the color for the specific items stack, or return BLACK (0) - * - * @param stack The ItemStack to read the color from - * @return Integer value of the color - */ - private int getColorFromStack(@NotNull ItemStack stack) { - if (stack.getItem() instanceof ItemDyable itemDyable) { - return RenderUtils.renderColorFromDye(itemDyable.getColor(stack)); - } - return 0; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/CraterBlockEntity.java b/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/CraterBlockEntity.java deleted file mode 100644 index dcb1692..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/CraterBlockEntity.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hypherionmc.craterlib.common.blockentity; - -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; -import com.hypherionmc.craterlib.api.blockentity.caps.ICraterCapProvider; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -/** - * @author HypherionSA - * A Wrapped Block Entity to incorporate CraterLib's universal capability provider - */ -public class CraterBlockEntity extends BlockEntity implements ICraterCapProvider { - - public CraterBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state) { - super(blockEntityType, pos, state); - } - - public void sendUpdates() { - level.blockEntityChanged(this.getBlockPos()); - level.sendBlockUpdated(this.getBlockPos(), level.getBlockState(this.getBlockPos()), level.getBlockState(this.getBlockPos()), 3); - setChanged(); - } - - @Override - public ClientboundBlockEntityDataPacket getUpdatePacket() { - return ClientboundBlockEntityDataPacket.create(this); - } - - @Override - public CompoundTag getUpdateTag() { - CompoundTag compoundTag = new CompoundTag(); - saveAdditional(compoundTag); - return compoundTag; - } - - @Override - public Optional getCapability(CraterCapabilityHandler handler, @Nullable Direction side) { - return Optional.empty(); - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/FluidContainerBlockEntity.java b/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/FluidContainerBlockEntity.java deleted file mode 100644 index 0e5b5a6..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/blockentity/FluidContainerBlockEntity.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hypherionmc.craterlib.common.blockentity; - -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; -import com.hypherionmc.craterlib.core.platform.CraterFluidHelper; -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -/** - * @author HypherionSA - * A wrapped BlockEntity containing a fluid tank - */ -public class FluidContainerBlockEntity extends CraterBlockEntity { - - public final CraterFluidTank fluidTank; - - public FluidContainerBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state, int capacity) { - super(blockEntityType, pos, state); - fluidTank = CraterFluidHelper.INSTANCE.createFluidTank(capacity); - } - - public FluidContainerBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state, int capacity, Fluid... validFluids) { - super(blockEntityType, pos, state); - fluidTank = CraterFluidHelper.INSTANCE.createFluidTank(capacity, validFluids); - fluidTank.setChangeListener(this::sendUpdates); - } - - @Override - protected void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); - fluidTank.writeToNBT(tag); - } - - @Override - public void load(CompoundTag tag) { - super.load(tag); - fluidTank.readFromNBT(tag); - } - - @Override - public Optional getCapability(CraterCapabilityHandler handler, @Nullable Direction side) { - if (handler == CraterCapabilityHandler.FLUID) { - return (Optional) Optional.of(fluidTank); - } - return super.getCapability(handler, side); - } - - public CraterFluidTank getFluidTank() { - return fluidTank; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/item/BlockItemDyable.java b/Common/src/main/java/com/hypherionmc/craterlib/common/item/BlockItemDyable.java deleted file mode 100644 index 12d08c5..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/item/BlockItemDyable.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hypherionmc.craterlib.common.item; - -import com.hypherionmc.craterlib.api.rendering.DyableBlock; -import com.hypherionmc.craterlib.api.rendering.ItemDyable; -import com.hypherionmc.craterlib.core.platform.ClientPlatform; -import com.hypherionmc.craterlib.core.platform.Environment; -import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.Property; -import org.apache.commons.lang3.text.WordUtils; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author HypherionSA - * Base Item for Blocks that implement @link {DyableBlock}. - */ -public class BlockItemDyable extends BlockItem implements ItemDyable { - - public BlockItemDyable(Block block, Properties properties) { - super(block, properties); - - if (ModloaderEnvironment.INSTANCE.getEnvironment() == Environment.CLIENT) { - ClientPlatform.INSTANCE.registerItemProperty(this, "color"); - } - } - - /** - * Get the Item Color from the block - * @return - */ - @Override - public DyeColor getColor(ItemStack stack) { - return this.getColorFromNBT(stack); - } - - @Override - public @NotNull Component getName(ItemStack stack) { - return Component.translatable( - this.getDescriptionId(), - WordUtils.capitalizeFully(getColorFromNBT( - stack).getName().replace("_", " ") - ) - ); - } - - public DyeColor getColorFromNBT(ItemStack stack) { - CompoundTag tag = stack.getOrCreateTag(); - if (tag.contains("color")) { - return DyeColor.byName(tag.getString("color"), DyeColor.BLACK); - } else { - if (this.getBlock() instanceof DyableBlock dyableBlock) { - return dyableBlock.defaultDyeColor(); - } - } - return DyeColor.BLACK; - } - - @Nullable - @Override - protected BlockState getPlacementState(BlockPlaceContext ctx) { - BlockState state = this.getBlock().getStateForPlacement(ctx); - if (state != null && state.getBlock() instanceof DyableBlock) { - Property property = state.getBlock().getStateDefinition().getProperty("color"); - if (property != null) { - state = state.setValue(property, getColorFromNBT(ctx.getItemInHand())); - } - } - return state != null && this.canPlace(ctx, state) ? state : null; - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBottle.java b/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBottle.java deleted file mode 100644 index f2f38b6..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBottle.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hypherionmc.craterlib.common.item; - -import com.hypherionmc.craterlib.api.rendering.ItemDyable; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.stats.Stats; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.*; -import net.minecraft.world.item.alchemy.PotionUtils; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.gameevent.GameEvent; - -import java.util.List; - -/** - * @author HypherionSA - * Custom Water Bottle item that supports Dye and can be used as Dye - */ -public class DyableWaterBottle extends DyeItem implements ItemDyable { - - private final DyeColor color; - private final boolean isGlowing; - - public DyableWaterBottle(DyeColor color, boolean isGlowing, Properties properties) { - super(color, properties); - this.color = color; - this.isGlowing = isGlowing; - } - - /** - * Normally this is used for enchanted items, in this case, it's used to check if the fluid is a glowing fluid - * - * @param stack - * @return - */ - @Override - public boolean isFoil(ItemStack stack) { - return this.isGlowing; - } - - /** - * Return the color of the item for the Color Handler - * - * @return - */ - @Override - public DyeColor getColor(ItemStack stack) { - return this.color; - } - - /** - * This is basically the same as the vanilla method for water bottles - * - * @param stack - * @param level - * @param user - * @return - */ - @Override - public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity user) { - Player playerEntity; - Player playerEntity2 = playerEntity = user instanceof Player ? (Player) user : null; - if (playerEntity instanceof ServerPlayer) { - CriteriaTriggers.CONSUME_ITEM.trigger((ServerPlayer) playerEntity, stack); - } - if (!level.isClientSide()) { - List list = PotionUtils.getMobEffects(stack); - for (MobEffectInstance statusEffectInstance : list) { - if (statusEffectInstance.getEffect().isInstantenous()) { - statusEffectInstance.getEffect().applyInstantenousEffect(playerEntity, playerEntity, user, statusEffectInstance.getAmplifier(), 1.0); - continue; - } - user.addEffect(new MobEffectInstance(statusEffectInstance)); - } - if (stack.getItem() == this && isGlowing) { - user.addEffect(new MobEffectInstance(MobEffects.NIGHT_VISION, 3600)); - } - } - if (playerEntity != null) { - playerEntity.awardStat(Stats.ITEM_USED.get(this)); - if (!playerEntity.getAbilities().instabuild) { - stack.shrink(1); - } - } - if (playerEntity == null || !playerEntity.getAbilities().instabuild) { - if (stack.isEmpty()) { - return new ItemStack(Items.GLASS_BOTTLE); - } - if (playerEntity != null) { - playerEntity.getInventory().add(new ItemStack(Items.GLASS_BOTTLE)); - } - } - level.gameEvent(user, GameEvent.DRINK, user.getOnPos()); - return stack; - } - - @Override - public int getUseDuration(ItemStack stack) { - return 32; - } - - @Override - public UseAnim getUseAnimation(ItemStack stack) { - return UseAnim.DRINK; - } - - @Override - public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { - return ItemUtils.startUsingInstantly(level, player, hand); - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBucket.java b/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBucket.java deleted file mode 100644 index ccf8681..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/item/DyableWaterBucket.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hypherionmc.craterlib.common.item; - -import com.hypherionmc.craterlib.api.rendering.ItemDyable; -import net.minecraft.world.item.BucketItem; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.material.Fluid; - -/** - * @author HypherionSA - * A custom water bucket that supports Dye Colors - */ -public class DyableWaterBucket extends BucketItem implements ItemDyable { - - private final DyeColor color; - private final boolean isGlowing; - - public DyableWaterBucket(Fluid fluid, Properties properties, DyeColor color, boolean isGlowing) { - super(fluid, properties); - this.color = color; - this.isGlowing = isGlowing; - } - - /** - * Normally this is used for enchanted items, in this case, it's used to check if the fluid is a glowing fluid - * - * @param stack - * @return - */ - @Override - public boolean isFoil(ItemStack stack) { - return this.isGlowing; - } - - @Override - public DyeColor getColor(ItemStack stack) { - return this.color; - } - - public boolean isGlowing() { - return isGlowing; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/common/particles/WrappedSimpleParticleType.java b/Common/src/main/java/com/hypherionmc/craterlib/common/particles/WrappedSimpleParticleType.java deleted file mode 100644 index 4114d75..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/common/particles/WrappedSimpleParticleType.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.hypherionmc.craterlib.common.particles; - -import net.minecraft.core.particles.SimpleParticleType; - -/** - * @author HypherionSA - * Helper Class for exposing a hidden constructor in the vanilla particle type - */ -public class WrappedSimpleParticleType extends SimpleParticleType { - - public WrappedSimpleParticleType(boolean alwaysShow) { - super(alwaysShow); - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/config/ModuleConfig.java b/Common/src/main/java/com/hypherionmc/craterlib/core/config/ModuleConfig.java index 31ccdcb..181efdc 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/config/ModuleConfig.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/config/ModuleConfig.java @@ -162,6 +162,7 @@ public class ModuleConfig { /** * Get the name of the Config File + * * @return */ public String getConfigName() { @@ -170,6 +171,7 @@ public class ModuleConfig { /** * Get the MODID of the Module the config is registered to + * * @return */ public String getModId() { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/event/CraterEventBus.java b/Common/src/main/java/com/hypherionmc/craterlib/core/event/CraterEventBus.java index 1ead324..751c102 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/event/CraterEventBus.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/event/CraterEventBus.java @@ -12,9 +12,8 @@ import java.util.function.Consumer; public final class CraterEventBus { - private static final Logger LOGGER = CraterConstants.LOG; - public static final CraterEventBus INSTANCE = new CraterEventBus(); + private static final Logger LOGGER = CraterConstants.LOG; private final Map, List> events = new HashMap<>(); public void postEvent(CraterEvent event) { @@ -39,11 +38,11 @@ public final class CraterEventBus { private void registerListenerMethods(List methods) { for (EventMethod m : methods) { Consumer listener = (event) -> { - try { - m.method.invoke(m.parentObject, event); - } catch (Exception e) { - throw new RuntimeException(e); - } + try { + m.method.invoke(m.parentObject, event); + } catch (Exception e) { + throw new RuntimeException(e); + } }; ListenerContainer container = new ListenerContainer(m.eventType, listener, m.priority); @@ -157,13 +156,6 @@ public final class CraterEventBus { collectMethodAnnotations(this.isStatic ? null : this.parentObject.getClass(), this.method, this.annotations); } - protected Class tryGetParentClass() { - if (this.parentObject instanceof Class) { - return (Class) this.parentObject; - } - return this.parentObject.getClass(); - } - protected static void collectMethodAnnotations(Class c, Method m, List addToList) { try { addToList.addAll(Arrays.asList(m.getAnnotations())); @@ -173,10 +165,19 @@ public final class CraterEventBus { try { Method sm = sc.getMethod(m.getName(), m.getParameterTypes()); collectMethodAnnotations(sc, sm, addToList); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } } - } catch (Exception ignored) {} + } catch (Exception ignored) { + } + } + + protected Class tryGetParentClass() { + if (this.parentObject instanceof Class) { + return (Class) this.parentObject; + } + return this.parentObject.getClass(); } } @@ -186,11 +187,6 @@ public final class CraterEventBus { protected final int priority; protected final Class eventType; - protected static EventMethod tryCreateFrom(AnalyzedMethod method) { - EventMethod em = new EventMethod(method); - return (em.eventType != null) ? em : null; - } - protected EventMethod(AnalyzedMethod method) { super(); @@ -205,6 +201,11 @@ public final class CraterEventBus { } + protected static EventMethod tryCreateFrom(AnalyzedMethod method) { + EventMethod em = new EventMethod(method); + return (em.eventType != null) ? em : null; + } + protected Class tryGetEventType() { try { if (this.method != null) { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ClientPlatform.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ClientPlatform.java index fcf44ca..7cece86 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ClientPlatform.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ClientPlatform.java @@ -1,15 +1,10 @@ package com.hypherionmc.craterlib.core.platform; -import com.hypherionmc.craterlib.common.item.BlockItemDyable; import com.hypherionmc.craterlib.util.ServiceUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.network.Connection; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import org.jetbrains.annotations.NotNull; /** * @author HypherionSA @@ -18,10 +13,6 @@ public interface ClientPlatform { public final ClientPlatform INSTANCE = ServiceUtil.load(ClientPlatform.class); - void registerItemProperty(@NotNull BlockItemDyable item, @NotNull String property); - - //void registerCustomRenderTypes(@NotNull Collection> blocks); - Minecraft getClientInstance(); Player getClientPlayer(); @@ -29,7 +20,4 @@ public interface ClientPlatform { Level getClientLevel(); Connection getClientConnection(); - - void registerBlockEntityRenderer(@NotNull BlockEntityType blockEntityType, @NotNull BlockEntityRendererProvider blockEntityRendererFactory); - } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CommonPlatform.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CommonPlatform.java index 5e53938..0463924 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CommonPlatform.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CommonPlatform.java @@ -1,22 +1,8 @@ package com.hypherionmc.craterlib.core.platform; -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; import com.hypherionmc.craterlib.core.network.CraterNetworkHandler; import com.hypherionmc.craterlib.util.ServiceUtil; -import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.MenuProvider; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.MenuType; -import net.minecraft.world.level.block.entity.BlockEntity; -import org.apache.commons.lang3.function.TriFunction; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; -import java.util.function.Consumer; /** * @author HypherionSA @@ -33,13 +19,4 @@ public interface CommonPlatform { MinecraftServer getMCServer(); - default void openMenu(ServerPlayer player, MenuProvider menuProvider) { - this.openMenu(player, menuProvider, null); - } - - void openMenu(ServerPlayer player, MenuProvider menu, @Nullable Consumer initialData); - - MenuType createMenuType(TriFunction constructor); - - Optional getCapabilityHandler(BlockEntity entity, Direction side, CraterCapabilityHandler capability); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CraterFluidHelper.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CraterFluidHelper.java deleted file mode 100644 index a326b4a..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/CraterFluidHelper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hypherionmc.craterlib.core.platform; - -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import com.hypherionmc.craterlib.util.ServiceUtil; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.material.Fluid; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author HypherionSA - */ -public interface CraterFluidHelper { - - public CraterFluidHelper INSTANCE = ServiceUtil.load(CraterFluidHelper.class); - - CraterFluidTank createFluidTank(int capacity); - - CraterFluidTank createFluidTank(int capacity, Fluid... validFluids); - - boolean interactWithFluidHandler(Player player, InteractionHand hand, ICraterFluidHandler fluidHandler); - - boolean interactWithFluidHandler(@NotNull Player player, @NotNull InteractionHand hand, @NotNull Level level, @NotNull BlockPos pos, @Nullable Direction side); - - TextureAtlasSprite getFluidTexture(FluidHolder fluidHolder); - - int getFluidColor(Fluid fluid); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ModloaderEnvironment.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ModloaderEnvironment.java index 1559170..2a91663 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ModloaderEnvironment.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/ModloaderEnvironment.java @@ -13,12 +13,20 @@ public interface ModloaderEnvironment { public final ModloaderEnvironment INSTANCE = ServiceUtil.load(ModloaderEnvironment.class); boolean isFabric(); + String getGameVersion(); + File getGameFolder(); + File getConfigFolder(); + File getModsFolder(); + Environment getEnvironment(); + boolean isModLoaded(String modid); + boolean isDevEnv(); + int getModCount(); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRPC.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRPC.java index f2b9e32..7cf53ff 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRPC.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRPC.java @@ -15,10 +15,11 @@ public interface DiscordRPC extends Library { /** * Open a New RPC Connection + * * @param applicationId The ID of the Application the RPC is tied to - * @param handlers Optional Event Callback Handlers - * @param autoRegister Auto Register the running game - * @param steamId Steam ID of the game + * @param handlers Optional Event Callback Handlers + * @param autoRegister Auto Register the running game + * @param steamId Steam ID of the game */ void Discord_Initialize(@NotNull String applicationId, @Nullable DiscordEventHandlers handlers, boolean autoRegister, @Nullable String steamId); @@ -40,6 +41,7 @@ public interface DiscordRPC extends Library { /** * Update the Rich Presence + * * @param struct Constructed {@link DiscordRichPresence} */ void Discord_UpdatePresence(@Nullable DiscordRichPresence struct); @@ -51,13 +53,15 @@ public interface DiscordRPC extends Library { /** * Respond to Join/Spectate callback + * * @param userid The Discord User ID of the user that initiated the request - * @param reply Reply to the request. See {@link DiscordReply} + * @param reply Reply to the request. See {@link DiscordReply} */ void Discord_Respond(@NotNull String userid, int reply); /** * Replace the already registered {@link DiscordEventHandlers} + * * @param handlers The new handlers to apply */ void Discord_UpdateHandlers(@Nullable DiscordEventHandlers handlers); @@ -65,17 +69,19 @@ public interface DiscordRPC extends Library { /** * Register the executable of the application/game * Only applicable when autoRegister is set to false - * @param applicationId The Application ID - * @param command The Launch command of the game * - * NB: THIS DOES NOT WORK WITH MINECRAFT + * @param applicationId The Application ID + * @param command The Launch command of the game + *

+ * NB: THIS DOES NOT WORK WITH MINECRAFT */ void Discord_Register(String applicationId, String command); /** * Register the Steam executable of the application/game + * * @param applicationId The Application ID - * @param steamId The Steam ID of the application/game + * @param steamId The Steam ID of the application/game */ void Discord_RegisterSteamGame(String applicationId, String steamId); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRichPresence.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRichPresence.java index 4ba6a89..51fd720 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRichPresence.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordRichPresence.java @@ -75,6 +75,10 @@ public class DiscordRichPresence extends Structure { // Unused public int instance; + public DiscordRichPresence() { + setStringEncoding("UTF-8"); + } + /** * DO NOT TOUCH THIS... EVER! */ @@ -104,10 +108,6 @@ public class DiscordRichPresence extends Structure { ); } - public DiscordRichPresence() { - setStringEncoding("UTF-8"); - } - public static class Builder { private final DiscordRichPresence rpc; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordUser.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordUser.java index ee97720..e8bc085 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordUser.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/DiscordUser.java @@ -30,10 +30,10 @@ public class DiscordUser extends Structure { @Override protected List getFieldOrder() { return Arrays.asList( - "userId", - "username", - "discriminator", - "avatar" + "userId", + "username", + "discriminator", + "avatar" ); } } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/DisconnectedCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/DisconnectedCallback.java index f07d879..7ea59e1 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/DisconnectedCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/DisconnectedCallback.java @@ -10,8 +10,9 @@ public interface DisconnectedCallback extends Callback { /** * Called when RPC disconnected + * * @param errorCode Error code if any - * @param message Details about the disconnection + * @param message Details about the disconnection */ void apply(int errorCode, String message); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ErroredCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ErroredCallback.java index e1046fb..1f86c90 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ErroredCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ErroredCallback.java @@ -10,8 +10,9 @@ public interface ErroredCallback extends Callback { /** * Called when an RPC error occurs + * * @param errorCode Error code if any - * @param message Details about the error + * @param message Details about the error */ void apply(int errorCode, String message); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinGameCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinGameCallback.java index ac35213..cc752af 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinGameCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinGameCallback.java @@ -10,6 +10,7 @@ public interface JoinGameCallback extends Callback { /** * Called when someone joins a game from {@link JoinRequestCallback} + * * @param joinSecret Secret or Password required to let the player join the game */ void apply(String joinSecret); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinRequestCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinRequestCallback.java index ce21860..115fd4f 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinRequestCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/JoinRequestCallback.java @@ -11,6 +11,7 @@ public interface JoinRequestCallback extends Callback { /** * Called when someone clicks on the Join Game button + * * @param user The Discord User trying to join your game * @see DiscordUser */ diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ReadyCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ReadyCallback.java index 89fe19b..66f3b59 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ReadyCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/ReadyCallback.java @@ -11,6 +11,7 @@ public interface ReadyCallback extends Callback { /** * Called when the RPC is connected and ready to be used + * * @param user The user the RPC is displayed on * @see DiscordUser */ diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/SpectateGameCallback.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/SpectateGameCallback.java index 125a698..979e53d 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/SpectateGameCallback.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/callbacks/SpectateGameCallback.java @@ -10,6 +10,7 @@ public interface SpectateGameCallback extends Callback { /** * Called when joining the game + * * @param spectateSecret Secret or Password required to let the player spectate */ void apply(String spectateSecret); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/helpers/RPCButton.java b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/helpers/RPCButton.java index 74a793c..ab2bdc8 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/helpers/RPCButton.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/rpcsdk/helpers/RPCButton.java @@ -24,8 +24,9 @@ public class RPCButton implements Serializable { /** * Create a new RPC Button + * * @param label The label of the button - * @param url The URL the button will open when clicked + * @param url The URL the button will open when clicked * @return The constructed button */ public static RPCButton create(@NotNull String label, @NotNull String url) { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/CustomEnergyStorage.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/CustomEnergyStorage.java deleted file mode 100644 index 8c873d7..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/CustomEnergyStorage.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.energy; - -import net.minecraft.nbt.CompoundTag; - -/*** - * @author HypherionSA - * Loosely based on the Forge Energy System - */ -public class CustomEnergyStorage implements ICraterEnergyStorage { - - protected int powerLevel; - protected int powerCapacity; - protected int maxInput; - protected int maxOutput; - - public CustomEnergyStorage(int capacity) { - this(capacity, capacity, capacity, 0); - } - - public CustomEnergyStorage(int powerCapacity, int maxTransfer) { - this(powerCapacity, maxTransfer, maxTransfer, 0); - } - - public CustomEnergyStorage(int powerCapacity, int maxInput, int maxOutput) { - this(powerCapacity, maxInput, maxOutput, 0); - } - - public CustomEnergyStorage(int capacity, int maxInput, int maxOutput, int initialPower) { - this.powerLevel = initialPower; - this.maxInput = maxInput; - this.maxOutput = maxOutput; - this.powerCapacity = capacity; - } - - @Override - public CompoundTag writeNBT(CompoundTag compoundTag) { - compoundTag.putInt("powerLevel", this.powerLevel); - return compoundTag; - } - - @Override - public void readNBT(CompoundTag compoundTag) { - if (compoundTag.contains("powerLevel")) { - this.powerLevel = compoundTag.getInt("powerLevel"); - } - } - - public int receiveEnergyInternal(int toReceive, boolean test) { - int energyReceived = Math.min(this.powerCapacity - this.powerLevel, Math.min(this.maxInput, toReceive)); - if (!test) - this.powerLevel += energyReceived; - return energyReceived; - } - - @Override - public int receiveEnergy(int toReceive, boolean test) { - if (this.maxInput < 1) { - return 0; - } - return this.receiveEnergyInternal(toReceive, test); - } - - public int extractEnergyInternal(int toExtract, boolean test) { - int energyExtracted = Math.min(this.powerLevel, Math.min(this.powerCapacity, toExtract)); - if (!test) - this.powerLevel -= energyExtracted; - return energyExtracted; - } - - @Override - public int extractEnergy(int toExtract, boolean test) { - if (this.maxOutput < 1) { - return 0; - } - int energyExtracted = Math.min(this.powerLevel, Math.min(this.maxOutput, toExtract)); - if (!test) - this.powerLevel -= energyExtracted; - return energyExtracted; - } - - @Override - public int getPowerLevel() { - return powerLevel; - } - - @Override - public int getMaxInput() { - return maxInput; - } - - @Override - public int getMaxOutput() { - return maxOutput; - } - - @Override - public int getPowerCapacity() { - return powerCapacity; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/ICraterEnergyStorage.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/ICraterEnergyStorage.java deleted file mode 100644 index dd16e67..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/energy/ICraterEnergyStorage.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.energy; - -import net.minecraft.nbt.CompoundTag; - -/** - * @author HypherionSA - */ -public interface ICraterEnergyStorage { - - default CompoundTag writeNBT(CompoundTag tag) { return tag; } - default void readNBT(CompoundTag tag) {} - - int receiveEnergy(int toReceive, boolean test); - int extractEnergy(int toExtract, boolean test); - - int getPowerLevel(); - - int getMaxInput(); - - int getMaxOutput(); - - int getPowerCapacity(); - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/CraterFluidTank.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/CraterFluidTank.java deleted file mode 100644 index 3921e5d..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/CraterFluidTank.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.fluid; - -import com.hypherionmc.craterlib.util.FluidUtils; -import net.minecraft.nbt.CompoundTag; - -import java.util.function.Predicate; - -/** - * @author HypherionSA - * A cross Modloader FluidTank implementation - */ -public class CraterFluidTank implements ICraterFluidHandler { - - private final int capacity; - private final Predicate validFluid; - private FluidHolder fluid = FluidHolder.EMPTY; - - private ChangeListener contentsChanged; - - public CraterFluidTank(int capacity) { - this(capacity, e -> true); - } - - public CraterFluidTank(int capacity, Predicate validFluid) { - this.capacity = capacity; - this.validFluid = validFluid; - } - - public boolean isValidFluid(FluidHolder variant) { - return validFluid.test(variant); - } - - @Override - public int insert(FluidHolder fluidHolder, FluidAction action) { - if (fluidHolder.isEmpty() || !isValidFluid(fluidHolder)) { - return 0; - } - - if (action.simulate()) { - if (fluid.isEmpty()) { - return Math.min(capacity, fluidHolder.getAmount()); - } - if (!fluid.isFluidEqual(fluidHolder)) { - return 0; - } - return Math.min(capacity - fluid.getAmount(), fluidHolder.getAmount()); - } - - if (fluid.isEmpty()) { - fluid = new FluidHolder(fluidHolder.getFluid(), Math.min(capacity, fluidHolder.getAmount())); - return fluid.getAmount(); - } - if (!fluid.isFluidEqual(fluidHolder)) { - return 0; - } - - int filled = capacity - fluid.getAmount(); - - if (fluidHolder.getAmount() < filled) { - fluid.grow(fluidHolder.getAmount()); - filled = fluidHolder.getAmount(); - } else { - fluid.setAmount(capacity); - filled = capacity; - } - - if (filled > 0) { - if (contentsChanged != null) { - contentsChanged.onContentsChanged(); - } - } - - return filled; - } - - @Override - public FluidHolder extract(FluidHolder resource, FluidAction action) { - if (resource.isEmpty() || !resource.isFluidEqual(fluid)) { - return FluidHolder.EMPTY; - } - return extract(resource.getAmount(), action); - } - - @Override - public FluidHolder extract(int amount, FluidAction action) { - int drained = amount; - if (fluid.getAmount() < drained) { - drained = fluid.getAmount(); - } - - FluidHolder holder = new FluidHolder(fluid, drained); - - if (action.execute() && drained > 0) { - fluid.shrink(drained); - } - - if (contentsChanged != null) { - contentsChanged.onContentsChanged(); - } - return holder; - } - - public void setContainedFluid(FluidHolder fluid) { - this.fluid = fluid; - } - - @Override - public boolean isTankEmpty() { - return fluid.isEmpty(); - } - - public int getSpace() - { - return Math.max(0, capacity - fluid.getAmount()); - } - - @Override - public FluidHolder getFluidInTank() { - return fluid; - } - - @Override - public int getTankLevel() { - return fluid.getAmount(); - } - - @Override - public int getTankCapacity() { - return capacity; - } - - @Override - public CompoundTag writeToNBT(CompoundTag tag) { - FluidUtils.putFluid(tag, "fluid", fluid.getFluid()); - tag.putInt("tankLevel", fluid.getAmount()); - return tag; - } - - @Override - public void readFromNBT(CompoundTag tag) { - fluid = new FluidHolder(FluidUtils.getFluidCompatible(tag), tag.getInt("tankLevel")); - } - - public void setChangeListener(ChangeListener contentsChanged) { - this.contentsChanged = contentsChanged; - } - - public interface ChangeListener { - void onContentsChanged(); - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/FluidHolder.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/FluidHolder.java deleted file mode 100644 index 21c211b..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/FluidHolder.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.fluid; - -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.Fluids; -import org.jetbrains.annotations.NotNull; - -/** - * @author HypherionSA - * Cross Modloader "FluidStack" implementation - */ -public class FluidHolder { - - private final Fluid fluid; - private int amount; - - public FluidHolder(FluidHolder holder) { - this(holder.getFluid(), holder.getAmount()); - } - - public FluidHolder(Fluid fluid, int amount) { - this.fluid = fluid; - this.amount = amount; - } - - public FluidHolder(FluidHolder fluid, int amount) { - this.fluid = fluid.getFluid(); - this.amount = amount; - } - - public static FluidHolder EMPTY = new FluidHolder(Fluids.EMPTY, 0); - - public boolean isEmpty() { - return amount == 0 || fluid.isSame(Fluids.EMPTY); - } - - public Fluid getFluid() { - return fluid; - } - - public int getAmount() { - return amount; - } - - public boolean isFluidEqual(@NotNull FluidHolder other) - { - return this.getFluid() == other.getFluid(); - } - - public void grow(int amount) { - this.amount += amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public void shrink(int amount) { - this.amount -= amount; - } - - public FluidHolder copy() { - return new FluidHolder(getFluid(), getAmount()); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/ICraterFluidHandler.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/ICraterFluidHandler.java deleted file mode 100644 index 2f56fc9..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/fluid/ICraterFluidHandler.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.fluid; - -import net.minecraft.nbt.CompoundTag; - -/** - * @author HypherionSA - * Cross modloader fluid handler implementation - */ -public interface ICraterFluidHandler { - - enum FluidAction { - EXECUTE, - SIMULATE; - - public boolean simulate() { - return this == SIMULATE; - } - - public boolean execute() { - return this == EXECUTE; - } - } - - int insert(FluidHolder fluidHolder, CraterFluidTank.FluidAction action); - FluidHolder extract(FluidHolder fluidHolder, CraterFluidTank.FluidAction action); - FluidHolder extract(int amount, CraterFluidTank.FluidAction action); - boolean isTankEmpty(); - FluidHolder getFluidInTank(); - int getTankLevel(); - int getTankCapacity(); - - default CompoundTag writeToNBT(CompoundTag tag) { return tag; } - - default void readFromNBT(CompoundTag tag) {}; -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/internal/CreativeTabRegistry.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/internal/CreativeTabRegistry.java deleted file mode 100644 index eb25d37..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/internal/CreativeTabRegistry.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.internal; - -import com.hypherionmc.craterlib.api.creativetab.CraterCreativeModeTab; -import net.minecraft.world.level.ItemLike; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Supplier; - -/** - * @author HypherionSA - * A helper class to make registering creative tabs easier across modloaders - */ -public class CreativeTabRegistry { - - private static final List TABS = new ArrayList<>(); - private static final List>> TAB_ITEMS = new ArrayList<>(); - - public static void setCreativeTab(CraterCreativeModeTab tab, Supplier item) { - if (item != null) { - TAB_ITEMS.add(Pair.of(tab, item)); - } - } - - public static void registerTab(CraterCreativeModeTab tab) { - TABS.add(tab); - } - - public static List getTabs() { - return TABS; - } - - public static List>> getTabItems() { - return TAB_ITEMS; - } -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/inventory/SimpleInventory.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/inventory/SimpleInventory.java deleted file mode 100644 index b578828..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/inventory/SimpleInventory.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hypherionmc.craterlib.core.systems.inventory; - -import com.google.common.base.Preconditions; -import net.minecraft.core.NonNullList; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.Clearable; -import net.minecraft.world.Container; -import net.minecraft.world.ContainerHelper; -import net.minecraft.world.SimpleContainer; -import net.minecraft.world.item.ItemStack; - -/** - * @author HypherionSA - * A crossmodloader inventory implementation - */ -public class SimpleInventory implements Clearable { - - private final SimpleContainer itemHandler; - private final int size; - - private final int stackSize; - - public SimpleInventory(int size, int maxStackSize) { - itemHandler = new SimpleContainer(size) { - @Override - public int getMaxStackSize() { - return maxStackSize; - } - }; - this.size = size; - this.stackSize = maxStackSize; - } - - private static void copyToInv(NonNullList src, Container dest) { - Preconditions.checkArgument(src.size() == dest.getContainerSize()); - for (int i = 0; i < src.size(); i++) { - dest.setItem(i, src.get(i)); - } - } - - private static NonNullList copyFromInv(Container inv) { - NonNullList ret = NonNullList.withSize(inv.getContainerSize(), ItemStack.EMPTY); - for (int i = 0; i < inv.getContainerSize(); i++) { - ret.set(i, inv.getItem(i)); - } - return ret; - } - - public void readNBT(CompoundTag tag) { - NonNullList tmp = NonNullList.withSize(size, ItemStack.EMPTY); - ContainerHelper.loadAllItems(tag, tmp); - copyToInv(tmp, itemHandler); - } - - public void writeNBT(CompoundTag tag) { - ContainerHelper.saveAllItems(tag, copyFromInv(itemHandler)); - } - - public final int inventorySize() { - return getItemHandler().getContainerSize(); - } - - public int getStackSize() { - return stackSize; - } - - @Override - public void clearContent() { - getItemHandler().clearContent(); - } - - public final Container getItemHandler() { - return itemHandler; - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/reg/package-info.java b/Common/src/main/java/com/hypherionmc/craterlib/core/systems/reg/package-info.java deleted file mode 100644 index ff0deab..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/systems/reg/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -/** - * So, if you got here, most probably you want to see the registration system of this mod. - * Well, you are in the wrong place. - * This mod uses RegistrationUtils for - * all its registration needs. - */ -package com.hypherionmc.craterlib.core.systems.reg; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/BlockColorsMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/BlockColorsMixin.java deleted file mode 100644 index b7ba9e3..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/BlockColorsMixin.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.hypherionmc.craterlib.mixin.colors; - -import com.hypherionmc.craterlib.api.event.client.ColorRegistrationEvent; -import com.hypherionmc.craterlib.core.event.CraterEventBus; -import net.minecraft.client.color.block.BlockColors; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -/** - * @author HypherionSA - * Mixin to accommodate Block Color Registration across multiple Modloaders - */ -@Mixin(BlockColors.class) -public class BlockColorsMixin { - - /** - * Inject into Vanilla code to fire off our event - */ - @Inject(method = "createDefault", at = @At("RETURN")) - private static void injectBlockColors(CallbackInfoReturnable cir) { - ColorRegistrationEvent.Blocks blockEvent = new ColorRegistrationEvent.Blocks(cir.getReturnValue()); - CraterEventBus.INSTANCE.postEvent(blockEvent); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/ItemColorsMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/ItemColorsMixin.java deleted file mode 100644 index 79f5f0f..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/colors/ItemColorsMixin.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hypherionmc.craterlib.mixin.colors; - -import com.hypherionmc.craterlib.api.event.client.ColorRegistrationEvent; -import com.hypherionmc.craterlib.core.event.CraterEventBus; -import net.minecraft.client.color.block.BlockColors; -import net.minecraft.client.color.item.ItemColors; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -/** - * @author HypherionSA - * Mixin to accommodate Item Color Registration across multiple Modloaders - */ -@Mixin(ItemColors.class) -public class ItemColorsMixin { - - /** - * Inject into Vanilla code to fire off our event - * @param cir - */ - @Inject(method = "createDefault", at = @At("RETURN")) - private static void injectItemColors(BlockColors $$0, CallbackInfoReturnable cir) { - ColorRegistrationEvent.Items itemColorEvent = new ColorRegistrationEvent.Items(cir.getReturnValue()); - CraterEventBus.INSTANCE.postEvent(itemColorEvent); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java index a141a00..2a30df9 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java @@ -10,7 +10,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Commands.class) public class CommandMixin { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/LivingEntityMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/LivingEntityMixin.java index b7a315d..71ea397 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/LivingEntityMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/LivingEntityMixin.java @@ -14,7 +14,7 @@ public class LivingEntityMixin { @Inject(method = "die", at = @At("HEAD"), cancellable = true) private void injectPlayerDeathEvent(DamageSource damageSource, CallbackInfo ci) { - CraterLivingDeathEvent event = new CraterLivingDeathEvent(((LivingEntity)(Object) this), damageSource); + CraterLivingDeathEvent event = new CraterLivingDeathEvent(((LivingEntity) (Object) this), damageSource); CraterEventBus.INSTANCE.postEvent(event); if (event.wasCancelled()) ci.cancel(); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerAdvancementsMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerAdvancementsMixin.java index fdeeeec..e81bd95 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerAdvancementsMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerAdvancementsMixin.java @@ -15,7 +15,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerAdvancements.class) public class PlayerAdvancementsMixin { - @Shadow private ServerPlayer player; + @Shadow + private ServerPlayer player; @Inject(method = "award", at = @At(value = "INVOKE", target = "Lnet/minecraft/advancements/AdvancementRewards;grant(Lnet/minecraft/server/level/ServerPlayer;)V", shift = At.Shift.AFTER)) private void injectAdvancementEvent(AdvancementHolder advancementHolder, String string, CallbackInfoReturnable cir) { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerMixin.java index d327d9e..2e1fd0b 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/PlayerMixin.java @@ -14,7 +14,7 @@ public class PlayerMixin { @Inject(method = "die", at = @At("HEAD"), cancellable = true) private void injectPlayerDeathEvent(DamageSource damageSource, CallbackInfo ci) { - CraterLivingDeathEvent event = new CraterLivingDeathEvent(((Player)(Object) this), damageSource); + CraterLivingDeathEvent event = new CraterLivingDeathEvent(((Player) (Object) this), damageSource); CraterEventBus.INSTANCE.postEvent(event); if (event.wasCancelled()) ci.cancel(); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java index 478fa51..1b8f1ad 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java @@ -14,7 +14,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ServerGamePacketListenerImpl.class) public class ServerGamePacketListenerImplMixin { - @Shadow public ServerPlayer player; + @Shadow + public ServerPlayer player; @Inject(method = "broadcastChatMessage", at = @At("HEAD"), cancellable = true) private void injectChatEvent(PlayerChatMessage chatMessage, CallbackInfo ci) { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerPlayerMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerPlayerMixin.java index f68b9ea..3e7b540 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerPlayerMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerPlayerMixin.java @@ -14,7 +14,7 @@ public class ServerPlayerMixin { @Inject(method = "die", at = @At("HEAD"), cancellable = true) private void injectPlayerDeathEvent(DamageSource damageSource, CallbackInfo ci) { - CraterLivingDeathEvent event = new CraterLivingDeathEvent(((ServerPlayer)(Object) this), damageSource); + CraterLivingDeathEvent event = new CraterLivingDeathEvent(((ServerPlayer) (Object) this), damageSource); CraterEventBus.INSTANCE.postEvent(event); if (event.wasCancelled()) ci.cancel(); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/client/MinecraftMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/client/MinecraftMixin.java index b9b8596..2d2420b 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/client/MinecraftMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/client/MinecraftMixin.java @@ -14,7 +14,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Minecraft.class) public class MinecraftMixin { - @Shadow @Nullable + @Shadow + @Nullable public Screen screen; @Inject(method = "setScreen", at = @At(value = "TAIL")) diff --git a/Common/src/main/java/com/hypherionmc/craterlib/util/BlockStateUtils.java b/Common/src/main/java/com/hypherionmc/craterlib/util/BlockStateUtils.java deleted file mode 100644 index a364334..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/util/BlockStateUtils.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.hypherionmc.craterlib.util; - -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; - -import java.util.function.ToIntFunction; - -/** - * @author HypherionSA - * Helper class to create light levels from BlockState values - */ -public class BlockStateUtils { - - public static ToIntFunction lightLevelFromLitBlockState(int litLevel) { - return state -> state.getValue(BlockStateProperties.LIT) ? litLevel : 0; - } - - public static ToIntFunction lightLevelFromPoweredBlockState(int litLevel) { - return state -> state.getValue(BlockStateProperties.POWERED) ? litLevel : 0; - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/util/ColorPropertyFunction.java b/Common/src/main/java/com/hypherionmc/craterlib/util/ColorPropertyFunction.java deleted file mode 100644 index 437b91d..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/util/ColorPropertyFunction.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hypherionmc.craterlib.util; - -import com.hypherionmc.craterlib.common.item.BlockItemDyable; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.item.ClampedItemPropertyFunction; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -/** - * @author HypherionSA - */ -public class ColorPropertyFunction implements ClampedItemPropertyFunction { - - private final BlockItemDyable item; - - public ColorPropertyFunction(BlockItemDyable item) { - this.item = item; - } - - @Override - public float call(ItemStack itemStack, @Nullable ClientLevel clientLevel, @Nullable LivingEntity livingEntity, int i) { - return Mth.clamp(this.unclampedCall(itemStack, clientLevel, livingEntity, i), 0.0F, 15.0F); - } - - @Override - public float unclampedCall(ItemStack itemStack, @Nullable ClientLevel clientLevel, @Nullable LivingEntity livingEntity, int i) { - DyeColor color = item.getColorFromNBT(itemStack); - return color.getId(); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/util/FluidUtils.java b/Common/src/main/java/com/hypherionmc/craterlib/util/FluidUtils.java deleted file mode 100644 index 6a05b88..0000000 --- a/Common/src/main/java/com/hypherionmc/craterlib/util/FluidUtils.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.hypherionmc.craterlib.util; - -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.Fluids; - -/** - * @author HypherionSA - * Utility class for interacting with fluids across modloaders - */ -public class FluidUtils { - - public static int fluidColorFromDye(DyeColor color) { - return color.getMapColor().col | 0xFF000000; - } - - public static void putFluid(CompoundTag compound, String key, Fluid fluidVariant) { - compound.putString("tankFluid", BuiltInRegistries.FLUID.getKey(fluidVariant).toString()); - } - - public static Fluid getFluidCompatible(CompoundTag tag) { - if (tag == null || !tag.contains("tankFluid")) - return Fluids.EMPTY; - - return BuiltInRegistries.FLUID.get(new ResourceLocation(tag.getString("tankFluid"))); - } - -} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/util/RenderUtils.java b/Common/src/main/java/com/hypherionmc/craterlib/util/RenderUtils.java index a5c9729..c489db0 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/util/RenderUtils.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/util/RenderUtils.java @@ -41,6 +41,15 @@ public class RenderUtils { } } + public static int renderColorFromDye(DyeColor color) { + return color.getMapColor().col | 0xFF000000; + } + + public static int alphaColorFromDye(DyeColor color, float alpha) { + float[] colors = color.getTextureDiffuseColors(); + return new Color(colors[0], colors[1], colors[2], alpha).getRGB(); + } + public static class ARGB32 { public static int alpha(int pPackedColor) { return pPackedColor >>> 24; @@ -58,13 +67,4 @@ public class RenderUtils { return pPackedColor & 255; } } - - public static int renderColorFromDye(DyeColor color) { - return color.getMapColor().col | 0xFF000000; - } - - public static int alphaColorFromDye(DyeColor color, float alpha) { - float[] colors = color.getTextureDiffuseColors(); - return new Color(colors[0], colors[1], colors[2], alpha).getRGB(); - } } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/util/ServiceUtil.java b/Common/src/main/java/com/hypherionmc/craterlib/util/ServiceUtil.java index a10a563..b9906f2 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/util/ServiceUtil.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/util/ServiceUtil.java @@ -12,6 +12,7 @@ public class ServiceUtil { /** * Try to load a service + * * @param clazz The service class type to load * @return The loaded class */ diff --git a/Common/src/main/resources/craterlib.aw b/Common/src/main/resources/craterlib.aw deleted file mode 100644 index ea52bcc..0000000 --- a/Common/src/main/resources/craterlib.aw +++ /dev/null @@ -1,4 +0,0 @@ -accessWidener v1 named - -accessible method net/minecraft/client/renderer/item/ItemProperties register (Lnet/minecraft/world/item/Item;Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/client/renderer/item/ClampedItemPropertyFunction;)V -accessible method net/minecraft/client/renderer/blockentity/BlockEntityRenderers register (Lnet/minecraft/world/level/block/entity/BlockEntityType;Lnet/minecraft/client/renderer/blockentity/BlockEntityRendererProvider;)V \ No newline at end of file diff --git a/Common/src/main/resources/craterlib.mixins.json b/Common/src/main/resources/craterlib.mixins.json index abad098..7fdffc5 100644 --- a/Common/src/main/resources/craterlib.mixins.json +++ b/Common/src/main/resources/craterlib.mixins.json @@ -6,8 +6,6 @@ "mixins": [ ], "client": [ - "colors.BlockColorsMixin", - "colors.ItemColorsMixin", "events.PlayerMixin", "events.client.ClientLevelMixin", "events.client.MinecraftMixin", diff --git a/Fabric/build.gradle b/Fabric/build.gradle index e79de25..8e61fdf 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -36,7 +36,6 @@ shadowJar { unimined.minecraft { fabric { loader fabric_loader - accessWidener(project(":Common").file("src/main/resources/${mod_id}.aw")) } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/client/CraterLibClientInitializer.java b/Fabric/src/main/java/com/hypherionmc/craterlib/client/CraterLibClientInitializer.java index 8f4df1d..50f30a4 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/client/CraterLibClientInitializer.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/client/CraterLibClientInitializer.java @@ -1,19 +1,9 @@ package com.hypherionmc.craterlib.client; import com.hypherionmc.craterlib.api.event.client.CraterClientTickEvent; -import com.hypherionmc.craterlib.api.event.client.LateInitEvent; import com.hypherionmc.craterlib.core.event.CraterEventBus; -import com.hypherionmc.craterlib.core.event.annot.CraterEventListener; -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; -import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; -import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; -import org.apache.commons.lang3.tuple.Pair; public class CraterLibClientInitializer implements ClientModInitializer { @@ -26,23 +16,4 @@ public class CraterLibClientInitializer implements ClientModInitializer { CraterEventBus.INSTANCE.registerEventListener(CraterLibClientInitializer.class); } - - @CraterEventListener - public static void lateInitEvent(LateInitEvent event) { - CreativeTabRegistry.getTabs().forEach(tab -> { - CreativeModeTab finalTab = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), FabricItemGroup.builder() - .title(Component.translatable("itemGroup." + - tab.getResourceLocation().toString().replace(":", ".") - )) - .icon(tab.getIcon()) - .build()); - - tab.setTab(finalTab); - - ItemGroupEvents.modifyEntriesEvent(tab.getResourceKey()).register(entries -> CreativeTabRegistry - .getTabItems() - .stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null) - .map(Pair::getRight).forEach(itm -> entries.accept(itm.get()))); - }); - } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientPlatform.java b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientPlatform.java index a113a7b..123abb4 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientPlatform.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientPlatform.java @@ -1,43 +1,16 @@ package com.hypherionmc.craterlib.client; -import com.hypherionmc.craterlib.common.item.BlockItemDyable; import com.hypherionmc.craterlib.core.platform.ClientPlatform; -import com.hypherionmc.craterlib.util.ColorPropertyFunction; -import net.fabricmc.api.EnvType; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; -import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.network.Connection; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import org.jetbrains.annotations.NotNull; /** * @author HypherionSA */ public class FabricClientPlatform implements ClientPlatform { - @Override - public void registerItemProperty(@NotNull BlockItemDyable item, @NotNull String property) { - if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) { - ItemProperties.register(item, new ResourceLocation(property), new ColorPropertyFunction(item)); - } - } - - /*@Override - public void registerCustomRenderTypes(Collection> blocks) { - blocks.forEach(blk -> { - if (blk.get() instanceof CustomRenderType type) { - BlockRenderLayerMap.INSTANCE.putBlock(blk.get(), type.getCustomRenderType()); - } - }); - }*/ - @Override public Minecraft getClientInstance() { return Minecraft.getInstance(); @@ -57,9 +30,4 @@ public class FabricClientPlatform implements ClientPlatform { public Connection getClientConnection() { return Minecraft.getInstance().getConnection().getConnection(); } - - @Override - public void registerBlockEntityRenderer(@NotNull BlockEntityType blockEntityType, @NotNull BlockEntityRendererProvider blockEntityRendererFactory) { - BlockEntityRenderers.register(blockEntityType, blockEntityRendererFactory); - } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java b/Fabric/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java deleted file mode 100644 index a3b064f..0000000 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hypherionmc.craterlib.client.gui.widgets; - -import com.hypherionmc.craterlib.systems.fluid.FluidTank; -import com.hypherionmc.craterlib.util.RenderUtils; -import com.mojang.blaze3d.systems.RenderSystem; -import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.narration.NarrationElementOutput; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Supplier; - -/** - * Modified from ... - */ -public class FluidStackWidget extends AbstractWidget { - - private final Screen displayOn; - private final Supplier getFluid; - - private final String toolTipTitle; - - public FluidStackWidget(Screen displayOn, Supplier getFluid, int pX, int pY, int pWidth, int pHeight, String tooltipTitle) { - super(pX, pY, pWidth, pHeight, Component.empty()); - this.displayOn = displayOn; - this.getFluid = getFluid; - this.toolTipTitle = tooltipTitle; - } - - @Override - public void renderWidget(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.defaultBlendFunc(); - RenderSystem.enableDepthTest(); - FluidTank fluidTank = getFluid.get(); - if (!fluidTank.getResource().isBlank()) { - FluidVariant fluidStack = fluidTank.getResource(); - TextureAtlasSprite still = FluidVariantRendering.getSprite(fluidStack); - if (still != null) { - RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - - int color = FluidVariantRendering.getColor(fluidStack); - RenderSystem.setShaderColor( - RenderUtils.ARGB32.red(color) / 255.0F, - RenderUtils.ARGB32.green(color) / 255.0F, - RenderUtils.ARGB32.blue(color) / 255.0F, - RenderUtils.ARGB32.alpha(color) / 255.0F); - RenderSystem.enableBlend(); - - long stored = fluidTank.getAmount(); - float capacity = fluidTank.getCapacity(); - float filledVolume = stored / capacity; - int renderableHeight = (int) (filledVolume * height); - - int atlasWidth = (int) (still.getX() / (still.getU1() - still.getU0())); - int atlasHeight = (int) (still.getY() / (still.getV1() - still.getV0())); - - matrices.pose().pushPose(); - matrices.pose().translate(0, height - 16, 0); - for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) { - int drawingHeight = Math.min(16, renderableHeight - 16 * i); - int notDrawingHeight = 16 - drawingHeight; - // TODO Double Check this - matrices.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); - matrices.pose().translate(0, -16, 0); - } - - RenderSystem.setShaderColor(1, 1, 1, 1); - matrices.pose().popPose(); - } - //renderToolTip(matrices, mouseX, mouseY); - } - } - - // TODO Fix Tooltips - /*@Override - public void renderToolTip(PoseStack poseStack, int mouseX, int mouseY) { - if (this.visible && this.isFocused() && isHoveredOrFocused()) { - displayOn.renderTooltip(poseStack, Arrays.asList(LangUtils.getTooltipTitle(toolTipTitle), Component.literal((int) (((float) this.getFluid.get().getAmount() / this.getFluid.get().getCapacity()) * 100) + "%")), Optional.empty(), mouseX, mouseY); - } - }*/ - - @Override - protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) { - - } -} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonPlatform.java b/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonPlatform.java index 408879c..e7f5e5e 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonPlatform.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonPlatform.java @@ -1,29 +1,9 @@ package com.hypherionmc.craterlib.common; -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; -import com.hypherionmc.craterlib.api.blockentity.caps.ICraterCapProvider; import com.hypherionmc.craterlib.core.network.CraterNetworkHandler; import com.hypherionmc.craterlib.core.platform.CommonPlatform; import com.hypherionmc.craterlib.network.FabricNetworkHandler; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; -import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.MenuProvider; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.MenuType; -import net.minecraft.world.level.block.entity.BlockEntity; -import org.apache.commons.lang3.function.TriFunction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; -import java.util.function.Consumer; /** * @author HypherionSA @@ -41,40 +21,4 @@ public class FabricCommonPlatform implements CommonPlatform { public MinecraftServer getMCServer() { return server; } - - @Override - public void openMenu(ServerPlayer player, MenuProvider menu, Consumer initialData) { - ExtendedScreenHandlerFactory factory = new ExtendedScreenHandlerFactory() { - @Override - public void writeScreenOpeningData(ServerPlayer player, FriendlyByteBuf buf) { - initialData.accept(buf); - } - - @Override - public @NotNull Component getDisplayName() { - return menu.getDisplayName(); - } - - @Nullable - @Override - public AbstractContainerMenu createMenu(int i, @NotNull Inventory inventory, @NotNull Player player) { - return menu.createMenu(i, inventory, player); - } - }; - - player.openMenu(factory); - } - - @Override - public MenuType createMenuType(TriFunction constructor) { - return new ExtendedScreenHandlerType<>(constructor::apply); - } - - @Override - public Optional getCapabilityHandler(BlockEntity entity, Direction side, CraterCapabilityHandler capability) { - if (entity instanceof ICraterCapProvider capProvider) { - return capProvider.getCapability(capability, side); - } - return Optional.empty(); - } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricFluidHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricFluidHelper.java deleted file mode 100644 index 37a2327..0000000 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricFluidHelper.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hypherionmc.craterlib.common; - -import com.hypherionmc.craterlib.core.platform.CraterFluidHelper; -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import com.hypherionmc.craterlib.systems.fluid.FabricFluidUtils; -import com.hypherionmc.craterlib.systems.fluid.FluidTank; -import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.fabricmc.fabric.impl.transfer.fluid.FluidVariantImpl; -import net.fabricmc.fabric.mixin.transfer.BucketItemAccessor; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BucketItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.material.Fluid; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Arrays; - -public class FabricFluidHelper implements CraterFluidHelper { - - @Override - public CraterFluidTank createFluidTank(int capacity) { - return new FluidTank(capacity); - } - - @Override - public CraterFluidTank createFluidTank(int capacity, Fluid... validFluids) { - return new FluidTank(capacity, (variant) -> Arrays.stream(validFluids).allMatch(f -> f.isSame(variant.getFluid()))); - } - - @Override - public boolean interactWithFluidHandler(Player player, InteractionHand hand, ICraterFluidHandler fluidHandler) { - ItemStack stack = player.getItemInHand(hand); - if (stack.getItem() instanceof BucketItem bucketItem) { - FluidVariant fluidVariant = new FluidVariantImpl(((BucketItemAccessor) bucketItem).fabric_getFluid(), stack.getTag()); - if (fluidVariant.isBlank()) - return false; - if (fluidHandler.insert(new FluidHolder(fluidVariant.getFluid(), 1000), ICraterFluidHandler.FluidAction.EXECUTE) > 0) { - player.level().playSound(null, player.getOnPos(), SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f); - return true; - } - } - return false; - } - - @Override - public boolean interactWithFluidHandler(@NotNull Player player, @NotNull InteractionHand hand, @NotNull Level level, @NotNull BlockPos pos, @Nullable Direction side) { - return false; - } - - @Override - public TextureAtlasSprite getFluidTexture(FluidHolder fluidHolder) { - return FabricFluidUtils.getFluidTexture(FluidVariant.of(fluidHolder.getFluid())); - } - - @Override - public int getFluidColor(Fluid fluid) { - return FluidVariantRendering.getColor(FluidVariant.of(fluid)); - } -} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java index d20f26e..fd48642 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java @@ -35,6 +35,10 @@ public class FabricNetworkHandler implements CraterNetworkHandler { this.modid = modid; } + public synchronized static CraterNetworkHandler of(String modId) { + return NETWORK_HANDLERS.computeIfAbsent(modId, FabricNetworkHandler::new); + } + @Override public > void registerPacket(Class clazz, Supplier supplier, PacketDirection packetDirection) { ResourceLocation channelName = this.nextId(); @@ -43,8 +47,10 @@ public class FabricNetworkHandler implements CraterNetworkHandler { final Function> decoder = buf -> Util.make(supplier.get(), message -> message.read(buf)); switch (packetDirection) { - case TO_CLIENT -> FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerClientReceiver(channelName, decoder); - case TO_SERVER -> FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerServerReceiver(channelName, decoder); + case TO_CLIENT -> + FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerClientReceiver(channelName, decoder); + case TO_SERVER -> + FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerServerReceiver(channelName, decoder); } } @@ -54,13 +60,15 @@ public class FabricNetworkHandler implements CraterNetworkHandler { @Override public Packet toServerBound(CraterPacket packet) { - if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_SERVER) throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_SERVER, PacketDirection.TO_CLIENT)); + if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_SERVER) + throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_SERVER, PacketDirection.TO_CLIENT)); return this.toPacket(ClientPlayNetworking::createC2SPacket, packet); } @Override public Packet toClientBound(CraterPacket packet) { - if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_CLIENT) throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_CLIENT, PacketDirection.TO_SERVER)); + if (this.packets.get(packet.getClass()).direction() != PacketDirection.TO_CLIENT) + throw new IllegalStateException("Attempted sending message to wrong side, expected %s, was %s".formatted(PacketDirection.TO_CLIENT, PacketDirection.TO_SERVER)); return this.toPacket(ServerPlayNetworking::createS2CPacket, packet); } @@ -71,11 +79,8 @@ public class FabricNetworkHandler implements CraterNetworkHandler { return packetFactory.apply(identifier, byteBuf); } - public synchronized static CraterNetworkHandler of(String modId) { - return NETWORK_HANDLERS.computeIfAbsent(modId, FabricNetworkHandler::new); - } - - private record PacketData(Class> clazz, ResourceLocation identifier, PacketDirection direction) { + private record PacketData(Class> clazz, ResourceLocation identifier, + PacketDirection direction) { } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java index e5ec67f..8f52b0c 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java @@ -12,10 +12,6 @@ import java.util.function.Function; public interface FabricNetworkHelper { - /* FABRIC ONLY */ - void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function> factory); - void registerServerReceiver(ResourceLocation channelName, Function> factory); - public static FabricNetworkHelper getForDist(EnvType dist) { switch (dist) { case CLIENT -> { @@ -28,4 +24,9 @@ public interface FabricNetworkHelper { return null; } + /* FABRIC ONLY */ + void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function> factory); + + void registerServerReceiver(ResourceLocation channelName, Function> factory); + } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FabricFluidUtils.java b/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FabricFluidUtils.java deleted file mode 100644 index 608f769..0000000 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FabricFluidUtils.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - -public class FabricFluidUtils { - - public static TextureAtlasSprite getFluidTexture(FluidVariant fluidStack) { - return FluidVariantRendering.getSprite(fluidStack); - } - -} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FluidTank.java b/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FluidTank.java deleted file mode 100644 index 5f1f6f0..0000000 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/systems/fluid/FluidTank.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.fabricmc.fabric.api.transfer.v1.storage.Storage; -import net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions; -import net.fabricmc.fabric.api.transfer.v1.storage.StorageView; -import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; - -import java.util.Iterator; -import java.util.function.Predicate; - -public class FluidTank extends CraterFluidTank implements Storage, StorageView { - - public FluidTank(long capacity) { - this(capacity, e -> true); - } - - public FluidTank(long capacity, Predicate validFluid) { - super((int) capacity, (p) -> validFluid.test(FluidVariant.of(p.getFluid()))); - } - - public boolean isFluidValid(FluidVariant variant) { - return isValidFluid(new FluidHolder(variant.getFluid(), 0)); - } - - @Override - public long insert(FluidVariant resource, long maxAmount, TransactionContext transaction) { - StoragePreconditions.notBlankNotNegative(resource, maxAmount); - return insert(new FluidHolder(resource.getFluid(), (int) maxAmount), FluidAction.EXECUTE); - } - - @Override - public long extract(FluidVariant resource, long maxAmount, TransactionContext transaction) { - StoragePreconditions.notBlankNotNegative(resource, maxAmount); - FluidHolder extracted = extract(new FluidHolder(resource.getFluid(), (int) maxAmount), FluidAction.EXECUTE); - return extracted.getAmount(); - } - - @Override - public Iterator> iterator() { - // TODO: FIX THIS! - return null; - } - - @Override - public boolean isResourceBlank() { - return isTankEmpty(); - } - - @Override - public FluidVariant getResource() { - return FluidVariant.of(getFluidInTank().getFluid()); - } - - @Override - public long getAmount() { - return getTankLevel(); - } - - @Override - public long getCapacity() { - return getTankCapacity(); - } -} diff --git a/Fabric/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper b/Fabric/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper deleted file mode 100644 index 274cb27..0000000 --- a/Fabric/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper +++ /dev/null @@ -1 +0,0 @@ -com.hypherionmc.craterlib.common.FabricFluidHelper diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 2a993ac..34183dc 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -30,7 +30,6 @@ "${mod_id}.mixins.json", "${mod_id}.fabric.mixins.json" ], - "accessWidener": "${mod_id}.aw", "depends": { "fabricloader": ">=0.14.21", "fabric-api": "*", diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java b/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java index 98ec2dc..cef73f1 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java @@ -1,7 +1,6 @@ package com.hypherionmc.craterlib; import com.hypherionmc.craterlib.api.event.client.LateInitEvent; -import com.hypherionmc.craterlib.client.CraterClientBus; import com.hypherionmc.craterlib.common.ForgeServerEvents; import com.hypherionmc.craterlib.core.event.CraterEventBus; import net.minecraft.client.Minecraft; @@ -16,7 +15,6 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; public class CraterLib { public CraterLib() { - CraterEventBus.INSTANCE.registerEventListener(CraterClientBus.class); MinecraftForge.EVENT_BUS.register(new ForgeServerEvents()); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup); } diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java b/Forge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java deleted file mode 100644 index 9cf2f00..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hypherionmc.craterlib.client; - -import com.hypherionmc.craterlib.CraterConstants; -import com.hypherionmc.craterlib.api.event.client.LateInitEvent; -import com.hypherionmc.craterlib.core.event.annot.CraterEventListener; -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; - -public class CraterClientBus { - - @CraterEventListener - public static void lateInit(LateInitEvent event) { - CraterConstants.LOG.info("Registering Creative Tabs"); - - CreativeTabRegistry.getTabs().forEach(tab -> { - CreativeModeTab.Builder builder = CreativeModeTab.builder(); - builder.title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", "."))); - builder.icon(tab.getIcon()); - - if (!tab.getBackgroundSuffix().isEmpty()) { - builder.backgroundSuffix(tab.getBackgroundSuffix()); - } - - CreativeModeTab tabb = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), builder.build()); - tab.setTab(tabb); - }); - } - -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/client/ForgeClientHelper.java b/Forge/src/main/java/com/hypherionmc/craterlib/client/ForgeClientHelper.java index ce9cd23..853d533 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/client/ForgeClientHelper.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/client/ForgeClientHelper.java @@ -1,19 +1,10 @@ package com.hypherionmc.craterlib.client; -import com.hypherionmc.craterlib.common.item.BlockItemDyable; import com.hypherionmc.craterlib.core.platform.ClientPlatform; -import com.hypherionmc.craterlib.util.ColorPropertyFunction; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; -import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.network.Connection; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.fml.loading.FMLEnvironment; import java.util.Objects; @@ -23,24 +14,9 @@ import java.util.Objects; */ public class ForgeClientHelper implements ClientPlatform { - public ForgeClientHelper() {} - - @Override - public void registerItemProperty(BlockItemDyable item, String property) { - if (FMLEnvironment.dist.isClient()) { - ItemProperties.register(item, new ResourceLocation(property), new ColorPropertyFunction(item)); - } + public ForgeClientHelper() { } - /*@Override - public void registerCustomRenderTypes(Collection> blocks) { - blocks.forEach(blk -> { - if (blk.get() instanceof CustomRenderType type) { - ItemBlockRenderTypes.setRenderLayer(blk.get(), type.getCustomRenderType()); - } - }); - }*/ - @Override public Minecraft getClientInstance() { return Minecraft.getInstance(); @@ -61,9 +37,4 @@ public class ForgeClientHelper implements ClientPlatform { Objects.requireNonNull(Minecraft.getInstance().getConnection(), "Cannot send packets when not in game!"); return Minecraft.getInstance().getConnection().getConnection(); } - - @Override - public void registerBlockEntityRenderer(BlockEntityType blockEntityType, BlockEntityRendererProvider blockEntityRendererFactory) { - BlockEntityRenderers.register(blockEntityType, blockEntityRendererFactory); - } } diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java b/Forge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java deleted file mode 100644 index ef73027..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.hypherionmc.craterlib.client.gui.widgets; - -import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.narration.NarrationElementOutput; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.texture.AbstractTexture; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.FastColor; -import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.templates.FluidTank; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Supplier; - -/** Copied from ...*/ -public class FluidStackWidget extends AbstractWidget { - - private final Screen displayOn; - private final Supplier getFluid; - - private final String toolTipTitle; - - public FluidStackWidget(Screen displayOn, Supplier getFluid, int pX, int pY, int pWidth, int pHeight, String toolTipTitle) { - super(pX, pY, pWidth, pHeight, Component.empty()); - this.displayOn = displayOn; - this.getFluid = getFluid; - this.toolTipTitle = toolTipTitle; - } - - @Override - public void renderWidget(@NotNull GuiGraphics pPoseStack, int pMouseX, int pMouseY, float pPartialTicks) { - Minecraft minecraft = Minecraft.getInstance(); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.defaultBlendFunc(); - RenderSystem.enableDepthTest(); - FluidTank fluidTank = getFluid.get(); - if (!fluidTank.isEmpty()) { - FluidStack fluidStack = fluidTank.getFluid(); - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluidStack.getFluid()); - ResourceLocation still = props.getStillTexture(fluidStack); - if (still != null) { - AbstractTexture texture = minecraft.getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS); - if (texture instanceof TextureAtlas atlas) { - TextureAtlasSprite sprite = atlas.getSprite(still); - RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - - int color = props.getTintColor(); - RenderSystem.setShaderColor( - FastColor.ARGB32.red(color) / 255.0F, - FastColor.ARGB32.green(color) / 255.0F, - FastColor.ARGB32.blue(color) / 255.0F, - FastColor.ARGB32.alpha(color) / 255.0F); - RenderSystem.enableBlend(); - - int stored = fluidTank.getFluidAmount(); - float capacity = fluidTank.getCapacity(); - float filledVolume = stored / capacity; - int renderableHeight = (int)(filledVolume * height); - - int atlasWidth = (int)(sprite.getY() / (sprite.getU1() - sprite.getU0())); - int atlasHeight = (int)(sprite.getY() / (sprite.getV1() - sprite.getV0())); - - pPoseStack.pose().pushPose(); - pPoseStack.pose().translate(0, height-16, 0); - for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) { - int drawingHeight = Math.min(16, renderableHeight - 16*i); - int notDrawingHeight = 16 - drawingHeight; - // TODO Double Check this - pPoseStack.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); - pPoseStack.pose().translate(0,-16, 0); - } - - RenderSystem.setShaderColor(1, 1, 1, 1); - pPoseStack.pose().popPose(); - } - } - //renderToolTip(pPoseStack, pMouseX, pMouseY); - } - } - - @Override - protected void updateWidgetNarration(NarrationElementOutput p_259858_) { - - } - - // TODO Fix Tooltips - /*@Override - public void renderToolTip(PoseStack pPoseStack, int pMouseX, int pMouseY) { - if (isActive() && isHovered) { - displayOn.renderTooltip(pPoseStack, Arrays.asList(LangUtils.getTooltipTitle(toolTipTitle).getVisualOrderText(), Component.literal((int) (((float)this.getFluid.get().getFluidAmount() / this.getFluid.get().getCapacity()) * 100) + "%").getVisualOrderText()), pMouseX, pMouseY); - } - }*/ -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonEvents.java b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonEvents.java deleted file mode 100644 index fddc858..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonEvents.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hypherionmc.craterlib.common; - -import com.hypherionmc.craterlib.CraterConstants; -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class ForgeCommonEvents { - - @SubscribeEvent - public static void registerTabs(BuildCreativeModeTabContentsEvent event) { - CreativeModeTab tab = event.getTab(); - - CreativeTabRegistry.getTabItems().stream() - .filter(p -> p.getLeft().get() == tab && p.getRight() != null) - .forEach(itemPair -> event.accept(itemPair.getRight())); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonHelper.java b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonHelper.java index 9b2b4ce..610491d 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonHelper.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeCommonHelper.java @@ -1,35 +1,15 @@ package com.hypherionmc.craterlib.common; -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; -import com.hypherionmc.craterlib.api.blockentity.caps.ICraterCapProvider; import com.hypherionmc.craterlib.core.network.CraterNetworkHandler; import com.hypherionmc.craterlib.core.platform.CommonPlatform; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; import com.hypherionmc.craterlib.network.ForgeNetworkHandler; -import com.hypherionmc.craterlib.systems.energy.ForgeEnergyReader; -import com.hypherionmc.craterlib.systems.fluid.ForgeFluidReader; -import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.MenuProvider; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.extensions.IForgeMenuType; import net.minecraftforge.server.ServerLifecycleHooks; -import org.apache.commons.lang3.function.TriFunction; -import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Consumer; /** * @author HypherionSA @@ -38,7 +18,8 @@ public class ForgeCommonHelper implements CommonPlatform { public static Map TABS = new HashMap<>(); - public ForgeCommonHelper() {} + public ForgeCommonHelper() { + } @Override public CraterNetworkHandler createPacketHandler(String modid, boolean requiredClient, boolean requiredServer) { @@ -49,41 +30,4 @@ public class ForgeCommonHelper implements CommonPlatform { public MinecraftServer getMCServer() { return ServerLifecycleHooks.getCurrentServer(); } - - @Override - public void openMenu(ServerPlayer player, MenuProvider menu, @Nullable Consumer initialData) { - if (initialData != null) { - player.openMenu(menu, initialData); - } else { - player.openMenu(menu, player.getOnPos()); - } - } - - @Override - public MenuType createMenuType(TriFunction constructor) { - return IForgeMenuType.create(constructor::apply); - } - - @Override - public Optional getCapabilityHandler(BlockEntity entity, Direction side, CraterCapabilityHandler capability) { - if (capability == CraterCapabilityHandler.ENERGY) { - AtomicReference energyReference = new AtomicReference<>(); - entity.getCapability(ForgeCapabilities.ENERGY, side).ifPresent(storage -> energyReference.set(new ForgeEnergyReader(storage))); - - return energyReference.get() != null ? (Optional) Optional.of(energyReference.get()) : Optional.empty(); - } - - if (capability == CraterCapabilityHandler.FLUID) { - AtomicReference craterFluidHandler = new AtomicReference<>(); - entity.getCapability(ForgeCapabilities.FLUID_HANDLER, side).ifPresent(iFluidHandler -> craterFluidHandler.set(new ForgeFluidReader(iFluidHandler))); - - return craterFluidHandler.get() != null ? (Optional) Optional.of(craterFluidHandler.get()) : Optional.empty(); - } - - if (entity instanceof ICraterCapProvider capProvider) { - return capProvider.getCapability(capability, side); - } - - return Optional.empty(); - } } diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeFluidHelper.java b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeFluidHelper.java deleted file mode 100644 index 7ddf0ab..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeFluidHelper.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hypherionmc.craterlib.common; - -import com.hypherionmc.craterlib.core.platform.CraterFluidHelper; -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import com.hypherionmc.craterlib.systems.fluid.ForgeFluidTankInteractor; -import com.hypherionmc.craterlib.systems.fluid.ForgeFluidUtils; -import com.hypherionmc.craterlib.systems.fluid.ForgeWrappedFluidTank; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidUtil; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Arrays; - -public class ForgeFluidHelper implements CraterFluidHelper { - - @Override - public CraterFluidTank createFluidTank(int capacity) { - return new ForgeWrappedFluidTank(capacity); - } - - @Override - public CraterFluidTank createFluidTank(int capacity, Fluid... validFluids) { - return new ForgeWrappedFluidTank(capacity, (variant) -> Arrays.stream(validFluids).allMatch(f -> f.isSame(variant.getFluid()))); - } - - @Override - public boolean interactWithFluidHandler(Player player, InteractionHand hand, ICraterFluidHandler fluidHandler) { - ForgeFluidTankInteractor interactor = new ForgeFluidTankInteractor(fluidHandler); - return FluidUtil.interactWithFluidHandler(player, hand, interactor); - } - - @Override - public boolean interactWithFluidHandler(@NotNull Player player, @NotNull InteractionHand hand, @NotNull Level level, @NotNull BlockPos pos, @Nullable Direction side) { - return FluidUtil.interactWithFluidHandler(player, hand, level, pos, side); - } - - @Override - public TextureAtlasSprite getFluidTexture(FluidHolder fluidHolder) { - return ForgeFluidUtils.getFluidTexture(new FluidStack(fluidHolder.getFluid(), 0), true); - } - - @Override - public int getFluidColor(Fluid fluid) { - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluid); - return props.getTintColor(); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeLoaderHelper.java b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeLoaderHelper.java index 4e3d033..2be70fc 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeLoaderHelper.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/common/ForgeLoaderHelper.java @@ -15,7 +15,8 @@ import java.io.File; */ public class ForgeLoaderHelper implements ModloaderEnvironment { - public ForgeLoaderHelper() {} + public ForgeLoaderHelper() { + } @Override public boolean isFabric() { diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java b/Forge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java deleted file mode 100644 index e786846..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hypherionmc.craterlib.mixin; - -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; -import com.hypherionmc.craterlib.api.blockentity.caps.ICraterCapProvider; -import com.hypherionmc.craterlib.common.blockentity.CraterBlockEntity; -import com.hypherionmc.craterlib.core.systems.energy.CustomEnergyStorage; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import com.hypherionmc.craterlib.core.systems.inventory.SimpleInventory; -import com.hypherionmc.craterlib.systems.energy.ForgeEnergyWrapper; -import com.hypherionmc.craterlib.systems.fluid.ForgeWrappedFluidTank; -import com.hypherionmc.craterlib.systems.inventory.ForgeInventoryWrapper; -import net.minecraft.core.Direction; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.wrapper.SidedInvWrapper; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; - -import java.util.Optional; - -/** - * @author HypherionSA - */ -@Mixin(CraterBlockEntity.class) -public class BlockEntityMixin implements ICapabilityProvider { - - @Override - public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { - ICraterCapProvider capProvider = (ICraterCapProvider) this; - - if (cap == ForgeCapabilities.ENERGY) { - Optional forgeCap = capProvider.getCapability(CraterCapabilityHandler.ENERGY, side); - if (forgeCap.isPresent()) { - return LazyOptional.of(() -> new ForgeEnergyWrapper(forgeCap.get())).cast(); - } - } - - if (cap == ForgeCapabilities.ITEM_HANDLER) { - Optional inventory = capProvider.getCapability(CraterCapabilityHandler.ITEM, side); - if (inventory.isPresent()) { - return LazyOptional.of(() -> new SidedInvWrapper(new ForgeInventoryWrapper(inventory.get()), side)).cast(); - } - } - - if (cap == ForgeCapabilities.FLUID_HANDLER) { - Optional fluidTank = capProvider.getCapability(CraterCapabilityHandler.FLUID, side); - if (fluidTank.isPresent()) { - return LazyOptional.of(() -> (ForgeWrappedFluidTank)fluidTank.get()).cast(); - } - } - - return LazyOptional.empty(); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java b/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java index 109671a..24b342e 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java @@ -24,6 +24,7 @@ public class ConfigScreenHandlerMixin { /** * Inject Auto Generated config Screens into forge + * * @param selectedMod * @param cir */ diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/network/ForgeNetworkHandler.java b/Forge/src/main/java/com/hypherionmc/craterlib/network/ForgeNetworkHandler.java index 720a44b..285db0b 100644 --- a/Forge/src/main/java/com/hypherionmc/craterlib/network/ForgeNetworkHandler.java +++ b/Forge/src/main/java/com/hypherionmc/craterlib/network/ForgeNetworkHandler.java @@ -49,13 +49,36 @@ public class ForgeNetworkHandler implements CraterNetworkHandler { this.serverRequired = serverRequired; } + public synchronized static CraterNetworkHandler of(String modId, boolean clientRequired, boolean serverRequired) { + ForgeNetworkHandler handler = NETWORK_HANDLERS.computeIfAbsent(modId, modId1 -> new ForgeNetworkHandler(buildSimpleChannel(modId1, clientRequired, serverRequired), clientRequired, serverRequired)); + if (handler.clientRequired != clientRequired) + throw new IllegalArgumentException("client channel settings mismatch, expected %s, but was %s".formatted(handler.clientRequired, clientRequired)); + if (handler.serverRequired != serverRequired) + throw new IllegalArgumentException("server channel settings mismatch, expected %s, but was %s".formatted(handler.serverRequired, serverRequired)); + return handler; + } + + private static SimpleChannel buildSimpleChannel(String modId, boolean clientAcceptsVanillaOrMissing, boolean serverAcceptsVanillaOrMissing) { + ChannelBuilder builder = ChannelBuilder.named(new ResourceLocation(modId, "crater_network")); + + if (clientAcceptsVanillaOrMissing) { + builder = builder.optionalClient(); + } + + if (serverAcceptsVanillaOrMissing) { + builder = builder.optionalServer(); + } + + return builder.simpleChannel(); + } + @Override public > void registerPacket(Class clazz, Supplier supplier, PacketDirection packetDirection) { BiConsumer encoder = CraterPacket::write; Function decoder = buf -> { - T packet = supplier.get(); - packet.read(buf); - return packet; + T packet = supplier.get(); + packet.read(buf); + return packet; }; BiConsumer handler = (packet, sup) -> { @@ -106,27 +129,6 @@ public class ForgeNetworkHandler implements CraterNetworkHandler { CraterNetworkHandler.super.sendToServer(packet); } - public synchronized static CraterNetworkHandler of(String modId, boolean clientRequired, boolean serverRequired) { - ForgeNetworkHandler handler = NETWORK_HANDLERS.computeIfAbsent(modId, modId1 -> new ForgeNetworkHandler(buildSimpleChannel(modId1, clientRequired, serverRequired), clientRequired, serverRequired)); - if (handler.clientRequired != clientRequired) throw new IllegalArgumentException("client channel settings mismatch, expected %s, but was %s".formatted(handler.clientRequired, clientRequired)); - if (handler.serverRequired != serverRequired) throw new IllegalArgumentException("server channel settings mismatch, expected %s, but was %s".formatted(handler.serverRequired, serverRequired)); - return handler; - } - - private static SimpleChannel buildSimpleChannel(String modId, boolean clientAcceptsVanillaOrMissing, boolean serverAcceptsVanillaOrMissing) { - ChannelBuilder builder = ChannelBuilder.named(new ResourceLocation(modId, "crater_network")); - - if (clientAcceptsVanillaOrMissing) { - builder = builder.optionalClient(); - } - - if (serverAcceptsVanillaOrMissing) { - builder = builder.optionalServer(); - } - - return builder.simpleChannel(); - } - private LogicalSide getSideFromDirection(PacketDirection direction) { return direction == PacketDirection.TO_CLIENT ? LogicalSide.CLIENT : LogicalSide.SERVER; } diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyReader.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyReader.java deleted file mode 100644 index 76c20a5..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyReader.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hypherionmc.craterlib.systems.energy; - -import com.hypherionmc.craterlib.core.systems.energy.ICraterEnergyStorage; -import net.minecraftforge.energy.IEnergyStorage; - -public record ForgeEnergyReader(IEnergyStorage forgeStorage) implements ICraterEnergyStorage { - - @Override - public int receiveEnergy(int toReceive, boolean test) { - return forgeStorage.receiveEnergy(toReceive, test); - } - - @Override - public int extractEnergy(int toExtract, boolean test) { - return forgeStorage.extractEnergy(toExtract, test); - } - - @Override - public int getPowerLevel() { - return forgeStorage.getEnergyStored(); - } - - @Override - public int getMaxInput() { - return 0; - } - - @Override - public int getMaxOutput() { - return 0; - } - - @Override - public int getPowerCapacity() { - return forgeStorage().getMaxEnergyStored(); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyWrapper.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyWrapper.java deleted file mode 100644 index 003e302..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/energy/ForgeEnergyWrapper.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.hypherionmc.craterlib.systems.energy; - -import com.hypherionmc.craterlib.core.systems.energy.CustomEnergyStorage; -import net.minecraftforge.energy.IEnergyStorage; - -/** - * @author HypherionSA - * Forge Energy Support on top of the custom system - */ -public record ForgeEnergyWrapper(CustomEnergyStorage storage) implements IEnergyStorage { - - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - return storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - return storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored() { - return storage.getPowerLevel(); - } - - @Override - public int getMaxEnergyStored() { - return storage.getPowerCapacity(); - } - - @Override - public boolean canExtract() { - return storage.getMaxOutput() > 0; - } - - @Override - public boolean canReceive() { - return storage.getMaxInput() > 0; - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidReader.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidReader.java deleted file mode 100644 index 37bb155..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidReader.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.IFluidHandler; - -public record ForgeFluidReader(IFluidHandler fluidHandler) implements ICraterFluidHandler { - - @Override - public int insert(FluidHolder fluidHolder, FluidAction action) { - return fluidHandler.fill(new FluidStack(fluidHolder.getFluid(), fluidHolder.getAmount()), action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - } - - @Override - public FluidHolder extract(FluidHolder fluidHolder, FluidAction action) { - FluidStack extracted = fluidHandler.drain(new FluidStack(fluidHolder.getFluid(), fluidHolder.getAmount()), action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - return new FluidHolder(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public FluidHolder extract(int amount, FluidAction action) { - FluidStack extracted = fluidHandler.drain(amount, action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - return new FluidHolder(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public boolean isTankEmpty() { - return false; - } - - @Override - public FluidHolder getFluidInTank() { - return FluidHolder.EMPTY; - } - - @Override - public int getTankLevel() { - return 0; - } - - @Override - public int getTankCapacity() { - return 0; - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidTankInteractor.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidTankInteractor.java deleted file mode 100644 index 5700650..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidTankInteractor.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.IFluidHandler; -import org.jetbrains.annotations.NotNull; - -public record ForgeFluidTankInteractor(ICraterFluidHandler fluidHandler) implements IFluidHandler { - - @Override - public int getTanks() { - return 1; - } - - @Override - public @NotNull FluidStack getFluidInTank(int tank) { - return new FluidStack(fluidHandler.getFluidInTank().getFluid(), fluidHandler.getFluidInTank().getAmount()); - } - - @Override - public int getTankCapacity(int tank) { - return fluidHandler.getTankCapacity(); - } - - @Override - public boolean isFluidValid(int tank, @NotNull FluidStack stack) { - return true; - } - - @Override - public int fill(FluidStack resource, FluidAction action) { - return fluidHandler.insert(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - } - - @Override - public @NotNull FluidStack drain(FluidStack resource, FluidAction action) { - FluidHolder drained = fluidHandler.extract(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(drained.getFluid(), drained.getAmount()); - } - - @Override - public @NotNull FluidStack drain(int maxDrain, FluidAction action) { - FluidHolder drained = fluidHandler.extract(maxDrain, action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(drained.getFluid(), drained.getAmount()); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidUtils.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidUtils.java deleted file mode 100644 index 759f09e..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeFluidUtils.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.AbstractTexture; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; -import net.minecraftforge.fluids.FluidStack; - -public class ForgeFluidUtils { - - public static TextureAtlasSprite getFluidTexture(FluidStack fluidStack, boolean still) { - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluidStack.getFluid()); - ResourceLocation fluidStill = still ? props.getStillTexture(fluidStack) : props.getFlowingTexture(fluidStack); - AbstractTexture texture = Minecraft.getInstance().getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS); - - if (texture instanceof TextureAtlas atlas) { - return atlas.getSprite(fluidStill); - } - - return null; - } - -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeWrappedFluidTank.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeWrappedFluidTank.java deleted file mode 100644 index 1af6633..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/fluid/ForgeWrappedFluidTank.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.IFluidHandler; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Predicate; - -public class ForgeWrappedFluidTank extends CraterFluidTank implements IFluidTank, IFluidHandler { - - public ForgeWrappedFluidTank(int capacity) { - super(capacity); - } - - public ForgeWrappedFluidTank(int capacity, Predicate predicate) { - super(capacity, p -> predicate.test(new FluidStack(p.getFluid(), p.getAmount()))); - } - - @Override - public @NotNull FluidStack getFluid() { - return new FluidStack(this.getFluidInTank().getFluid(), this.getTankLevel()); - } - - @Override - public int getFluidAmount() { - return this.getTankLevel(); - } - - @Override - public int getCapacity() { - return this.getTankCapacity(); - } - - @Override - public boolean isFluidValid(FluidStack stack) { - return this.isValidFluid(new FluidHolder(stack.getFluid(), stack.getAmount())); - } - - @Override - public int getTanks() { - return 1; - } - - @Override - public @NotNull FluidStack getFluidInTank(int tankInt) { - return new FluidStack(this.getFluidInTank().getFluid(), this.getTankLevel()); - } - - @Override - public int getTankCapacity(int tankInt) { - return this.getTankCapacity(); - } - - @Override - public boolean isFluidValid(int tankInt, @NotNull FluidStack stack) { - return this.isValidFluid(new FluidHolder(stack.getFluid(), stack.getAmount())); - } - - @Override - public int fill(FluidStack resource, IFluidHandler.FluidAction action) { - return this.insert(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? CraterFluidTank.FluidAction.SIMULATE : CraterFluidTank.FluidAction.EXECUTE); - } - - @Override - public @NotNull FluidStack drain(int maxDrain, IFluidHandler.FluidAction action) { - FluidHolder extracted = this.extract(maxDrain, action.simulate() ? CraterFluidTank.FluidAction.SIMULATE : CraterFluidTank.FluidAction.EXECUTE); - return new FluidStack(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public @NotNull FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action) { - FluidHolder holder = this.extract(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? CraterFluidTank.FluidAction.SIMULATE : CraterFluidTank.FluidAction.EXECUTE); - return new FluidStack(holder.getFluid(), holder.getAmount()); - } -} diff --git a/Forge/src/main/java/com/hypherionmc/craterlib/systems/inventory/ForgeInventoryWrapper.java b/Forge/src/main/java/com/hypherionmc/craterlib/systems/inventory/ForgeInventoryWrapper.java deleted file mode 100644 index 63f8154..0000000 --- a/Forge/src/main/java/com/hypherionmc/craterlib/systems/inventory/ForgeInventoryWrapper.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hypherionmc.craterlib.systems.inventory; - -import com.google.common.base.Suppliers; -import com.hypherionmc.craterlib.core.systems.inventory.SimpleInventory; -import net.minecraft.core.Direction; -import net.minecraft.world.WorldlyContainer; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -import java.util.function.Supplier; -import java.util.stream.IntStream; - -/** - * @author HypherionSA - */ -public class ForgeInventoryWrapper implements WorldlyContainer { - - private final SimpleInventory inventory; - private final Supplier slots = Suppliers.memoize(() -> IntStream.range(0, getContainerSize()).toArray()); - - public ForgeInventoryWrapper(SimpleInventory inventory) { - this.inventory = inventory; - } - - @Override - public int[] getSlotsForFace(Direction side) { - return slots.get(); - } - - @Override - public boolean canPlaceItemThroughFace(int slot, ItemStack stack, @Nullable Direction side) { - if (canPlaceItem(slot, stack)) { - ItemStack existing = getItem(slot); - return existing.getCount() < getMaxStackSize(); - } - - return false; - } - - @Override - public boolean canTakeItemThroughFace(int slot, ItemStack stack, Direction side) { - return true; - } - - @Override - public int getContainerSize() { - return inventory.getItemHandler().getContainerSize(); - } - - @Override - public boolean isEmpty() { - return inventory.getItemHandler().isEmpty(); - } - - @Override - public ItemStack getItem(int slot) { - return inventory.getItemHandler().getItem(slot); - } - - @Override - public ItemStack removeItem(int p_18942_, int p_18943_) { - return inventory.getItemHandler().removeItem(p_18942_, p_18943_); - } - - @Override - public ItemStack removeItemNoUpdate(int slot) { - return inventory.getItemHandler().removeItemNoUpdate(slot); - } - - @Override - public void setItem(int slot, ItemStack stack) { - inventory.getItemHandler().setItem(slot, stack); - } - - @Override - public void setChanged() { - inventory.getItemHandler().setChanged(); - } - - @Override - public boolean stillValid(Player player) { - return inventory.getItemHandler().stillValid(player); - } - - @Override - public void clearContent() { - inventory.getItemHandler().clearContent(); - } -} diff --git a/Forge/src/main/resources/META-INF/accesstransformer.cfg b/Forge/src/main/resources/META-INF/accesstransformer.cfg deleted file mode 100644 index bf1848b..0000000 --- a/Forge/src/main/resources/META-INF/accesstransformer.cfg +++ /dev/null @@ -1 +0,0 @@ -public net.minecraft.client.renderer.LevelRenderer$RenderChunkInfo diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 3b20686..f396b5e 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -1,13 +1,13 @@ modLoader = "javafml" loaderVersion = "[49,)" license = "MIT" -issueTrackerURL="https://github.com/firstdarkdev/craterLib/issues" +issueTrackerURL = "https://github.com/firstdarkdev/craterLib/issues" [[mods]] modId = "${mod_id}" version = "${version}" displayName = "${mod_name}" -displayURL="https://modrinth.com/mod/craterlib" +displayURL = "https://modrinth.com/mod/craterlib" logoFile = "craterlib_logo.png" #credits="Thanks for this example mod goes to Java" authors = "${mod_author}, Zenith" @@ -16,14 +16,14 @@ A library mod used by First Dark Development and HypherionSA Mods ''' displayTest = "MATCH_VERSION" -[[dependencies.${mod_id}]] +[[dependencies.${ mod_id }]] modId = "forge" mandatory = true versionRange = "[49,)" ordering = "NONE" side = "BOTH" -[[dependencies.${mod_id}]] +[[dependencies.${ mod_id }]] modId = "minecraft" mandatory = true versionRange = "[1.20.3,1.21)" diff --git a/Forge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper b/Forge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper deleted file mode 100644 index ad50794..0000000 --- a/Forge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper +++ /dev/null @@ -1 +0,0 @@ -com.hypherionmc.craterlib.common.ForgeFluidHelper \ No newline at end of file diff --git a/Forge/src/main/resources/craterlib.forge.mixins.json b/Forge/src/main/resources/craterlib.forge.mixins.json index fa60324..ae1aaa9 100644 --- a/Forge/src/main/resources/craterlib.forge.mixins.json +++ b/Forge/src/main/resources/craterlib.forge.mixins.json @@ -4,7 +4,6 @@ "package": "com.hypherionmc.craterlib.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ - "BlockEntityMixin" ], "client": [ "ConfigScreenHandlerMixin" diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/CraterLib.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/CraterLib.java index 0f91943..1ea6078 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/CraterLib.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/CraterLib.java @@ -1,7 +1,6 @@ package com.hypherionmc.craterlib; import com.hypherionmc.craterlib.api.event.client.LateInitEvent; -import com.hypherionmc.craterlib.client.CraterClientBus; import com.hypherionmc.craterlib.common.NeoForgeServerEvents; import com.hypherionmc.craterlib.core.event.CraterEventBus; import net.minecraft.client.Minecraft; @@ -16,7 +15,6 @@ import net.neoforged.neoforge.common.NeoForge; public class CraterLib { public CraterLib(IEventBus eventBus) { - CraterEventBus.INSTANCE.registerEventListener(CraterClientBus.class); NeoForge.EVENT_BUS.register(new NeoForgeServerEvents()); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup); } diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java deleted file mode 100644 index 9cf2f00..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/CraterClientBus.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hypherionmc.craterlib.client; - -import com.hypherionmc.craterlib.CraterConstants; -import com.hypherionmc.craterlib.api.event.client.LateInitEvent; -import com.hypherionmc.craterlib.core.event.annot.CraterEventListener; -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; - -public class CraterClientBus { - - @CraterEventListener - public static void lateInit(LateInitEvent event) { - CraterConstants.LOG.info("Registering Creative Tabs"); - - CreativeTabRegistry.getTabs().forEach(tab -> { - CreativeModeTab.Builder builder = CreativeModeTab.builder(); - builder.title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", "."))); - builder.icon(tab.getIcon()); - - if (!tab.getBackgroundSuffix().isEmpty()) { - builder.backgroundSuffix(tab.getBackgroundSuffix()); - } - - CreativeModeTab tabb = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), builder.build()); - tab.setTab(tabb); - }); - } - -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/NeoForgeClientHelper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/client/NeoForgeClientHelper.java index 914a7d6..c3c5177 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/NeoForgeClientHelper.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/client/NeoForgeClientHelper.java @@ -1,19 +1,10 @@ package com.hypherionmc.craterlib.client; -import com.hypherionmc.craterlib.common.item.BlockItemDyable; import com.hypherionmc.craterlib.core.platform.ClientPlatform; -import com.hypherionmc.craterlib.util.ColorPropertyFunction; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; -import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.network.Connection; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.neoforged.fml.loading.FMLEnvironment; import java.util.Objects; @@ -23,24 +14,9 @@ import java.util.Objects; */ public class NeoForgeClientHelper implements ClientPlatform { - public NeoForgeClientHelper() {} - - @Override - public void registerItemProperty(BlockItemDyable item, String property) { - if (FMLEnvironment.dist.isClient()) { - ItemProperties.register(item, new ResourceLocation(property), new ColorPropertyFunction(item)); - } + public NeoForgeClientHelper() { } - /*@Override - public void registerCustomRenderTypes(Collection> blocks) { - blocks.forEach(blk -> { - if (blk.get() instanceof CustomRenderType type) { - ItemBlockRenderTypes.setRenderLayer(blk.get(), type.getCustomRenderType()); - } - }); - }*/ - @Override public Minecraft getClientInstance() { return Minecraft.getInstance(); @@ -61,9 +37,4 @@ public class NeoForgeClientHelper implements ClientPlatform { Objects.requireNonNull(Minecraft.getInstance().getConnection(), "Cannot send packets when not in game!"); return Minecraft.getInstance().getConnection().getConnection(); } - - @Override - public void registerBlockEntityRenderer(BlockEntityType blockEntityType, BlockEntityRendererProvider blockEntityRendererFactory) { - BlockEntityRenderers.register(blockEntityType, blockEntityRendererFactory); - } } diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java deleted file mode 100644 index f8c9ed0..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.hypherionmc.craterlib.client.gui.widgets; - -import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.narration.NarrationElementOutput; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.texture.AbstractTexture; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.FastColor; -import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.capability.templates.FluidTank; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Supplier; - -/** Copied from ...*/ -public class FluidStackWidget extends AbstractWidget { - - private final Screen displayOn; - private final Supplier getFluid; - - private final String toolTipTitle; - - public FluidStackWidget(Screen displayOn, Supplier getFluid, int pX, int pY, int pWidth, int pHeight, String toolTipTitle) { - super(pX, pY, pWidth, pHeight, Component.empty()); - this.displayOn = displayOn; - this.getFluid = getFluid; - this.toolTipTitle = toolTipTitle; - } - - @Override - public void renderWidget(@NotNull GuiGraphics pPoseStack, int pMouseX, int pMouseY, float pPartialTicks) { - Minecraft minecraft = Minecraft.getInstance(); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.defaultBlendFunc(); - RenderSystem.enableDepthTest(); - FluidTank fluidTank = getFluid.get(); - if (!fluidTank.isEmpty()) { - FluidStack fluidStack = fluidTank.getFluid(); - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluidStack.getFluid()); - ResourceLocation still = props.getStillTexture(fluidStack); - if (still != null) { - AbstractTexture texture = minecraft.getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS); - if (texture instanceof TextureAtlas atlas) { - TextureAtlasSprite sprite = atlas.getSprite(still); - RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - - int color = props.getTintColor(); - RenderSystem.setShaderColor( - FastColor.ARGB32.red(color) / 255.0F, - FastColor.ARGB32.green(color) / 255.0F, - FastColor.ARGB32.blue(color) / 255.0F, - FastColor.ARGB32.alpha(color) / 255.0F); - RenderSystem.enableBlend(); - - int stored = fluidTank.getFluidAmount(); - float capacity = fluidTank.getCapacity(); - float filledVolume = stored / capacity; - int renderableHeight = (int)(filledVolume * height); - - int atlasWidth = (int)(sprite.getY() / (sprite.getU1() - sprite.getU0())); - int atlasHeight = (int)(sprite.getY() / (sprite.getV1() - sprite.getV0())); - - pPoseStack.pose().pushPose(); - pPoseStack.pose().translate(0, height-16, 0); - for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) { - int drawingHeight = Math.min(16, renderableHeight - 16*i); - int notDrawingHeight = 16 - drawingHeight; - // TODO Double Check this - pPoseStack.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); - pPoseStack.pose().translate(0,-16, 0); - } - - RenderSystem.setShaderColor(1, 1, 1, 1); - pPoseStack.pose().popPose(); - } - } - //renderToolTip(pPoseStack, pMouseX, pMouseY); - } - } - - @Override - protected void updateWidgetNarration(NarrationElementOutput p_259858_) { - - } - - // TODO Fix Tooltips - /*@Override - public void renderToolTip(PoseStack pPoseStack, int pMouseX, int pMouseY) { - if (isActive() && isHovered) { - displayOn.renderTooltip(pPoseStack, Arrays.asList(LangUtils.getTooltipTitle(toolTipTitle).getVisualOrderText(), Component.literal((int) (((float)this.getFluid.get().getFluidAmount() / this.getFluid.get().getCapacity()) * 100) + "%").getVisualOrderText()), pMouseX, pMouseY); - } - }*/ -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonEvents.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonEvents.java deleted file mode 100644 index c62bad5..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonEvents.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hypherionmc.craterlib.common; - -import com.hypherionmc.craterlib.CraterConstants; -import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.common.Mod; -import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; - -@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class NeoForgeCommonEvents { - - @SubscribeEvent - public static void registerTabs(BuildCreativeModeTabContentsEvent event) { - CreativeModeTab tab = event.getTab(); - - CreativeTabRegistry.getTabItems().stream() - .filter(p -> p.getLeft().get() == tab && p.getRight() != null) - .forEach(itemPair -> event.accept(itemPair.getRight().get())); - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonHelper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonHelper.java index 886ff4c..cb19104 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonHelper.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeCommonHelper.java @@ -1,29 +1,15 @@ package com.hypherionmc.craterlib.common; -import com.hypherionmc.craterlib.api.blockentity.caps.CraterCapabilityHandler; import com.hypherionmc.craterlib.core.network.CraterNetworkHandler; import com.hypherionmc.craterlib.core.platform.CommonPlatform; import com.hypherionmc.craterlib.network.NeoForgeNetworkHandler; -import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.MenuProvider; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; import net.neoforged.neoforge.server.ServerLifecycleHooks; -import org.apache.commons.lang3.function.TriFunction; -import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; -import java.util.Optional; -import java.util.function.Consumer; /** * @author HypherionSA @@ -32,7 +18,8 @@ public class NeoForgeCommonHelper implements CommonPlatform { public static Map TABS = new HashMap<>(); - public NeoForgeCommonHelper() {} + public NeoForgeCommonHelper() { + } @Override public CraterNetworkHandler createPacketHandler(String modid, boolean requiredClient, boolean requiredServer) { @@ -43,43 +30,4 @@ public class NeoForgeCommonHelper implements CommonPlatform { public MinecraftServer getMCServer() { return ServerLifecycleHooks.getCurrentServer(); } - - @Override - public void openMenu(ServerPlayer player, MenuProvider menu, @Nullable Consumer initialData) { - // TODO Fix Menus - /*if (initialData != null) { - player.openMenu(menu, initialData); - } else { - player.openMenu(menu, player.getOnPos()); - }*/ - } - - @Override - public MenuType createMenuType(TriFunction constructor) { - return IMenuTypeExtension.create(constructor::apply); - } - - @Override - public Optional getCapabilityHandler(BlockEntity entity, Direction side, CraterCapabilityHandler capability) { - // TODO Fix This - /*if (capability == CraterCapabilityHandler.ENERGY) { - AtomicReference energyReference = new AtomicReference<>(); - entity.getCapability(Capabilities.ENERGY, side).ifPresent(storage -> energyReference.set(new NeoForgeEnergyReader(storage))); - - return energyReference.get() != null ? (Optional) Optional.of(energyReference.get()) : Optional.empty(); - } - - if (capability == CraterCapabilityHandler.FLUID) { - AtomicReference craterFluidHandler = new AtomicReference<>(); - entity.getCapability(Capabilities.FLUID_HANDLER, side).ifPresent(iFluidHandler -> craterFluidHandler.set(new NeoForgeFluidReader(iFluidHandler))); - - return craterFluidHandler.get() != null ? (Optional) Optional.of(craterFluidHandler.get()) : Optional.empty(); - } - - if (entity instanceof ICraterCapProvider capProvider) { - return capProvider.getCapability(capability, side); - }*/ - - return Optional.empty(); - } } diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeFluidHelper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeFluidHelper.java deleted file mode 100644 index 0558607..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeFluidHelper.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hypherionmc.craterlib.common; - -import com.hypherionmc.craterlib.core.platform.CraterFluidHelper; -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import com.hypherionmc.craterlib.systems.fluid.NeoForgeFluidTankInteractor; -import com.hypherionmc.craterlib.systems.fluid.NeoForgeFluidUtils; -import com.hypherionmc.craterlib.systems.fluid.NeoForgeWrappedFluidTank; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.FluidUtil; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Arrays; - -public class NeoForgeFluidHelper implements CraterFluidHelper { - - @Override - public CraterFluidTank createFluidTank(int capacity) { - return new NeoForgeWrappedFluidTank(capacity); - } - - @Override - public CraterFluidTank createFluidTank(int capacity, Fluid... validFluids) { - return new NeoForgeWrappedFluidTank(capacity, (variant) -> Arrays.stream(validFluids).allMatch(f -> f.isSame(variant.getFluid()))); - } - - @Override - public boolean interactWithFluidHandler(Player player, InteractionHand hand, ICraterFluidHandler fluidHandler) { - NeoForgeFluidTankInteractor interactor = new NeoForgeFluidTankInteractor(fluidHandler); - return FluidUtil.interactWithFluidHandler(player, hand, interactor); - } - - @Override - public boolean interactWithFluidHandler(@NotNull Player player, @NotNull InteractionHand hand, @NotNull Level level, @NotNull BlockPos pos, @Nullable Direction side) { - return FluidUtil.interactWithFluidHandler(player, hand, level, pos, side); - } - - @Override - public TextureAtlasSprite getFluidTexture(FluidHolder fluidHolder) { - return NeoForgeFluidUtils.getFluidTexture(new FluidStack(fluidHolder.getFluid(), 0), true); - } - - @Override - public int getFluidColor(Fluid fluid) { - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluid); - return props.getTintColor(); - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeLoaderHelper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeLoaderHelper.java index 443c127..2eb4c4a 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeLoaderHelper.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/common/NeoForgeLoaderHelper.java @@ -15,7 +15,8 @@ import java.io.File; */ public class NeoForgeLoaderHelper implements ModloaderEnvironment { - public NeoForgeLoaderHelper() {} + public NeoForgeLoaderHelper() { + } @Override public boolean isFabric() { diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java deleted file mode 100644 index 327056c..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/BlockEntityMixin.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.hypherionmc.craterlib.mixin; - -import com.hypherionmc.craterlib.common.blockentity.CraterBlockEntity; -import org.spongepowered.asm.mixin.Mixin; - -/** - * @author HypherionSA - */ -// TODO Fix This -@Mixin(CraterBlockEntity.class) -public class BlockEntityMixin /*implements ICapabilityProvider*/ { - - /*@Override - public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { - ICraterCapProvider capProvider = (ICraterCapProvider) this; - - if (cap == Capabilities.ENERGY) { - Optional forgeCap = capProvider.getCapability(CraterCapabilityHandler.ENERGY, side); - if (forgeCap.isPresent()) { - return LazyOptional.of(() -> new NeoForgeEnergyWrapper(forgeCap.get())).cast(); - } - } - - if (cap == Capabilities.ITEM_HANDLER) { - Optional inventory = capProvider.getCapability(CraterCapabilityHandler.ITEM, side); - if (inventory.isPresent()) { - return LazyOptional.of(() -> new SidedInvWrapper(new NeoForgeInventoryWrapper(inventory.get()), side)).cast(); - } - } - - if (cap == Capabilities.FLUID_HANDLER) { - Optional fluidTank = capProvider.getCapability(CraterCapabilityHandler.FLUID, side); - if (fluidTank.isPresent()) { - return LazyOptional.of(() -> (NeoForgeWrappedFluidTank)fluidTank.get()).cast(); - } - } - - return LazyOptional.empty(); - }*/ -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java index 90228bf..c114b64 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/mixin/ConfigScreenHandlerMixin.java @@ -24,6 +24,7 @@ public class ConfigScreenHandlerMixin { /** * Inject Auto Generated config Screens into forge + * * @param selectedMod * @param cir */ diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/network/NeoForgeNetworkHandler.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/network/NeoForgeNetworkHandler.java index 3c77462..89a3054 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/network/NeoForgeNetworkHandler.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/network/NeoForgeNetworkHandler.java @@ -46,6 +46,24 @@ public class NeoForgeNetworkHandler implements CraterNetworkHandler { this.serverRequired = serverRequired; } + public synchronized static CraterNetworkHandler of(String modId, boolean clientRequired, boolean serverRequired) { + NeoForgeNetworkHandler handler = NETWORK_HANDLERS.computeIfAbsent(modId, modId1 -> new NeoForgeNetworkHandler(buildSimpleChannel(modId1, clientRequired, serverRequired), clientRequired, serverRequired)); + if (handler.clientRequired != clientRequired) + throw new IllegalArgumentException("client channel settings mismatch, expected %s, but was %s".formatted(handler.clientRequired, clientRequired)); + if (handler.serverRequired != serverRequired) + throw new IllegalArgumentException("server channel settings mismatch, expected %s, but was %s".formatted(handler.serverRequired, serverRequired)); + return handler; + } + + private static SimpleChannel buildSimpleChannel(String modId, boolean clientAcceptsVanillaOrMissing, boolean serverAcceptsVanillaOrMissing) { + return NetworkRegistry.ChannelBuilder + .named(new ResourceLocation(modId, "crater_network")) + .networkProtocolVersion(() -> PROTOCOL) + .clientAcceptedVersions(clientAcceptsVanillaOrMissing ? NetworkRegistry.acceptMissingOr(PROTOCOL) : PROTOCOL::equals) + .serverAcceptedVersions(serverAcceptsVanillaOrMissing ? NetworkRegistry.acceptMissingOr(PROTOCOL) : PROTOCOL::equals) + .simpleChannel(); + } + @Override public > void registerPacket(Class clazz, Supplier supplier, PacketDirection packetDirection) { BiConsumer encoder = CraterPacket::write; @@ -93,22 +111,6 @@ public class NeoForgeNetworkHandler implements CraterNetworkHandler { CraterNetworkHandler.super.sendToServer(packet); } - public synchronized static CraterNetworkHandler of(String modId, boolean clientRequired, boolean serverRequired) { - NeoForgeNetworkHandler handler = NETWORK_HANDLERS.computeIfAbsent(modId, modId1 -> new NeoForgeNetworkHandler(buildSimpleChannel(modId1, clientRequired, serverRequired), clientRequired, serverRequired)); - if (handler.clientRequired != clientRequired) throw new IllegalArgumentException("client channel settings mismatch, expected %s, but was %s".formatted(handler.clientRequired, clientRequired)); - if (handler.serverRequired != serverRequired) throw new IllegalArgumentException("server channel settings mismatch, expected %s, but was %s".formatted(handler.serverRequired, serverRequired)); - return handler; - } - - private static SimpleChannel buildSimpleChannel(String modId, boolean clientAcceptsVanillaOrMissing, boolean serverAcceptsVanillaOrMissing) { - return NetworkRegistry.ChannelBuilder - .named(new ResourceLocation(modId, "crater_network")) - .networkProtocolVersion(() -> PROTOCOL) - .clientAcceptedVersions(clientAcceptsVanillaOrMissing ? NetworkRegistry.acceptMissingOr(PROTOCOL) : PROTOCOL::equals) - .serverAcceptedVersions(serverAcceptsVanillaOrMissing ? NetworkRegistry.acceptMissingOr(PROTOCOL) : PROTOCOL::equals) - .simpleChannel(); - } - private LogicalSide getSideFromDirection(PacketDirection direction) { return direction == PacketDirection.TO_CLIENT ? LogicalSide.CLIENT : LogicalSide.SERVER; } diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyReader.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyReader.java deleted file mode 100644 index 6c824bb..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyReader.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hypherionmc.craterlib.systems.energy; - -import com.hypherionmc.craterlib.core.systems.energy.ICraterEnergyStorage; -import net.neoforged.neoforge.energy.IEnergyStorage; - -public record NeoForgeEnergyReader(IEnergyStorage forgeStorage) implements ICraterEnergyStorage { - - @Override - public int receiveEnergy(int toReceive, boolean test) { - return forgeStorage.receiveEnergy(toReceive, test); - } - - @Override - public int extractEnergy(int toExtract, boolean test) { - return forgeStorage.extractEnergy(toExtract, test); - } - - @Override - public int getPowerLevel() { - return forgeStorage.getEnergyStored(); - } - - @Override - public int getMaxInput() { - return 0; - } - - @Override - public int getMaxOutput() { - return 0; - } - - @Override - public int getPowerCapacity() { - return forgeStorage().getMaxEnergyStored(); - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyWrapper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyWrapper.java deleted file mode 100644 index 2eeb70e..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/energy/NeoForgeEnergyWrapper.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.hypherionmc.craterlib.systems.energy; - -import com.hypherionmc.craterlib.core.systems.energy.CustomEnergyStorage; -import net.neoforged.neoforge.energy.IEnergyStorage; - -/** - * @author HypherionSA - * Forge Energy Support on top of the custom system - */ -public record NeoForgeEnergyWrapper(CustomEnergyStorage storage) implements IEnergyStorage { - - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - return storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - return storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored() { - return storage.getPowerLevel(); - } - - @Override - public int getMaxEnergyStored() { - return storage.getPowerCapacity(); - } - - @Override - public boolean canExtract() { - return storage.getMaxOutput() > 0; - } - - @Override - public boolean canReceive() { - return storage.getMaxInput() > 0; - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidReader.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidReader.java deleted file mode 100644 index 02e7ea4..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidReader.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; - -public record NeoForgeFluidReader(IFluidHandler fluidHandler) implements ICraterFluidHandler { - - @Override - public int insert(FluidHolder fluidHolder, FluidAction action) { - return fluidHandler.fill(new FluidStack(fluidHolder.getFluid(), fluidHolder.getAmount()), action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - } - - @Override - public FluidHolder extract(FluidHolder fluidHolder, FluidAction action) { - FluidStack extracted = fluidHandler.drain(new FluidStack(fluidHolder.getFluid(), fluidHolder.getAmount()), action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - return new FluidHolder(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public FluidHolder extract(int amount, FluidAction action) { - FluidStack extracted = fluidHandler.drain(amount, action.simulate() ? IFluidHandler.FluidAction.SIMULATE : IFluidHandler.FluidAction.EXECUTE); - return new FluidHolder(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public boolean isTankEmpty() { - return false; - } - - @Override - public FluidHolder getFluidInTank() { - return FluidHolder.EMPTY; - } - - @Override - public int getTankLevel() { - return 0; - } - - @Override - public int getTankCapacity() { - return 0; - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidTankInteractor.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidTankInteractor.java deleted file mode 100644 index c0c957b..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidTankInteractor.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; -import org.jetbrains.annotations.NotNull; - -public record NeoForgeFluidTankInteractor(ICraterFluidHandler fluidHandler) implements IFluidHandler { - - @Override - public int getTanks() { - return 1; - } - - @Override - public @NotNull FluidStack getFluidInTank(int tank) { - return new FluidStack(fluidHandler.getFluidInTank().getFluid(), fluidHandler.getFluidInTank().getAmount()); - } - - @Override - public int getTankCapacity(int tank) { - return fluidHandler.getTankCapacity(); - } - - @Override - public boolean isFluidValid(int tank, @NotNull FluidStack stack) { - return true; - } - - @Override - public int fill(FluidStack resource, FluidAction action) { - return fluidHandler.insert(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - } - - @Override - public @NotNull FluidStack drain(FluidStack resource, FluidAction action) { - FluidHolder drained = fluidHandler.extract(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(drained.getFluid(), drained.getAmount()); - } - - @Override - public @NotNull FluidStack drain(int maxDrain, FluidAction action) { - FluidHolder drained = fluidHandler.extract(maxDrain, action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(drained.getFluid(), drained.getAmount()); - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidUtils.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidUtils.java deleted file mode 100644 index 2e3f7f6..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeFluidUtils.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.AbstractTexture; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.resources.ResourceLocation; -import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; -import net.neoforged.neoforge.fluids.FluidStack; - -public class NeoForgeFluidUtils { - - public static TextureAtlasSprite getFluidTexture(FluidStack fluidStack, boolean still) { - IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluidStack.getFluid()); - ResourceLocation fluidStill = still ? props.getStillTexture(fluidStack) : props.getFlowingTexture(fluidStack); - AbstractTexture texture = Minecraft.getInstance().getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS); - - if (texture instanceof TextureAtlas atlas) { - return atlas.getSprite(fluidStill); - } - - return null; - } - -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeWrappedFluidTank.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeWrappedFluidTank.java deleted file mode 100644 index da3e105..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/fluid/NeoForgeWrappedFluidTank.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hypherionmc.craterlib.systems.fluid; - -import com.hypherionmc.craterlib.core.systems.fluid.CraterFluidTank; -import com.hypherionmc.craterlib.core.systems.fluid.FluidHolder; -import com.hypherionmc.craterlib.core.systems.fluid.ICraterFluidHandler; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.fluids.IFluidTank; -import net.neoforged.neoforge.fluids.capability.IFluidHandler; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Predicate; - -public class NeoForgeWrappedFluidTank extends CraterFluidTank implements IFluidTank, IFluidHandler { - - public NeoForgeWrappedFluidTank(int capacity) { - super(capacity); - } - - public NeoForgeWrappedFluidTank(int capacity, Predicate predicate) { - super(capacity, p -> predicate.test(new FluidStack(p.getFluid(), p.getAmount()))); - } - - @Override - public @NotNull FluidStack getFluid() { - return new FluidStack(this.getFluidInTank().getFluid(), this.getTankLevel()); - } - - @Override - public int getFluidAmount() { - return this.getTankLevel(); - } - - @Override - public int getCapacity() { - return this.getTankCapacity(); - } - - @Override - public boolean isFluidValid(FluidStack stack) { - return this.isValidFluid(new FluidHolder(stack.getFluid(), stack.getAmount())); - } - - @Override - public int getTanks() { - return 1; - } - - @Override - public @NotNull FluidStack getFluidInTank(int tankInt) { - return new FluidStack(this.getFluidInTank().getFluid(), this.getTankLevel()); - } - - @Override - public int getTankCapacity(int tankInt) { - return this.getTankCapacity(); - } - - @Override - public boolean isFluidValid(int tankInt, @NotNull FluidStack stack) { - return this.isValidFluid(new FluidHolder(stack.getFluid(), stack.getAmount())); - } - - @Override - public int fill(FluidStack resource, IFluidHandler.FluidAction action) { - return this.insert(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - } - - @Override - public @NotNull FluidStack drain(int maxDrain, IFluidHandler.FluidAction action) { - FluidHolder extracted = this.extract(maxDrain, action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(extracted.getFluid(), extracted.getAmount()); - } - - @Override - public @NotNull FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action) { - FluidHolder holder = this.extract(new FluidHolder(resource.getFluid(), resource.getAmount()), action.simulate() ? ICraterFluidHandler.FluidAction.SIMULATE : ICraterFluidHandler.FluidAction.EXECUTE); - return new FluidStack(holder.getFluid(), holder.getAmount()); - } -} diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/inventory/NeoForgeInventoryWrapper.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/inventory/NeoForgeInventoryWrapper.java deleted file mode 100644 index 1c5cc45..0000000 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/systems/inventory/NeoForgeInventoryWrapper.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hypherionmc.craterlib.systems.inventory; - -import com.google.common.base.Suppliers; -import com.hypherionmc.craterlib.core.systems.inventory.SimpleInventory; -import net.minecraft.core.Direction; -import net.minecraft.world.WorldlyContainer; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -import java.util.function.Supplier; -import java.util.stream.IntStream; - -/** - * @author HypherionSA - */ -public class NeoForgeInventoryWrapper implements WorldlyContainer { - - private final SimpleInventory inventory; - private final Supplier slots = Suppliers.memoize(() -> IntStream.range(0, getContainerSize()).toArray()); - - public NeoForgeInventoryWrapper(SimpleInventory inventory) { - this.inventory = inventory; - } - - @Override - public int[] getSlotsForFace(Direction side) { - return slots.get(); - } - - @Override - public boolean canPlaceItemThroughFace(int slot, ItemStack stack, @Nullable Direction side) { - if (canPlaceItem(slot, stack)) { - ItemStack existing = getItem(slot); - return existing.getCount() < getMaxStackSize(); - } - - return false; - } - - @Override - public boolean canTakeItemThroughFace(int slot, ItemStack stack, Direction side) { - return true; - } - - @Override - public int getContainerSize() { - return inventory.getItemHandler().getContainerSize(); - } - - @Override - public boolean isEmpty() { - return inventory.getItemHandler().isEmpty(); - } - - @Override - public ItemStack getItem(int slot) { - return inventory.getItemHandler().getItem(slot); - } - - @Override - public ItemStack removeItem(int p_18942_, int p_18943_) { - return inventory.getItemHandler().removeItem(p_18942_, p_18943_); - } - - @Override - public ItemStack removeItemNoUpdate(int slot) { - return inventory.getItemHandler().removeItemNoUpdate(slot); - } - - @Override - public void setItem(int slot, ItemStack stack) { - inventory.getItemHandler().setItem(slot, stack); - } - - @Override - public void setChanged() { - inventory.getItemHandler().setChanged(); - } - - @Override - public boolean stillValid(Player player) { - return inventory.getItemHandler().stillValid(player); - } - - @Override - public void clearContent() { - inventory.getItemHandler().clearContent(); - } -} diff --git a/NeoForge/src/main/resources/META-INF/accesstransformer.cfg b/NeoForge/src/main/resources/META-INF/accesstransformer.cfg deleted file mode 100644 index bf1848b..0000000 --- a/NeoForge/src/main/resources/META-INF/accesstransformer.cfg +++ /dev/null @@ -1 +0,0 @@ -public net.minecraft.client.renderer.LevelRenderer$RenderChunkInfo diff --git a/NeoForge/src/main/resources/META-INF/mods.toml b/NeoForge/src/main/resources/META-INF/mods.toml index 05f6aa4..8b18919 100644 --- a/NeoForge/src/main/resources/META-INF/mods.toml +++ b/NeoForge/src/main/resources/META-INF/mods.toml @@ -1,13 +1,13 @@ modLoader = "javafml" loaderVersion = "[1,)" license = "MIT" -issueTrackerURL="https://github.com/firstdarkdev/craterLib/issues" +issueTrackerURL = "https://github.com/firstdarkdev/craterLib/issues" [[mods]] modId = "${mod_id}" version = "${version}" displayName = "${mod_name}" -displayURL="https://modrinth.com/mod/craterlib" +displayURL = "https://modrinth.com/mod/craterlib" logoFile = "craterlib_logo.png" #credits="Thanks for this example mod goes to Java" authors = "${mod_author}, Zenith" @@ -16,14 +16,14 @@ A library mod used by First Dark Development and HypherionSA Mods ''' displayTest = "MATCH_VERSION" -[[dependencies.${mod_id}]] +[[dependencies.${ mod_id }]] modId = "neoforge" mandatory = true versionRange = "[20.3,)" ordering = "NONE" side = "BOTH" -[[dependencies.${mod_id}]] +[[dependencies.${ mod_id }]] modId = "minecraft" mandatory = true versionRange = "[1.20.3,1.21)" diff --git a/NeoForge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper b/NeoForge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper deleted file mode 100644 index 7c023ac..0000000 --- a/NeoForge/src/main/resources/META-INF/services/com.hypherionmc.craterlib.core.platform.CraterFluidHelper +++ /dev/null @@ -1 +0,0 @@ -com.hypherionmc.craterlib.common.NeoForgeFluidHelper \ No newline at end of file diff --git a/NeoForge/src/main/resources/craterlib.neoforge.mixins.json b/NeoForge/src/main/resources/craterlib.neoforge.mixins.json index fa60324..ae1aaa9 100644 --- a/NeoForge/src/main/resources/craterlib.neoforge.mixins.json +++ b/NeoForge/src/main/resources/craterlib.neoforge.mixins.json @@ -4,7 +4,6 @@ "package": "com.hypherionmc.craterlib.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ - "BlockEntityMixin" ], "client": [ "ConfigScreenHandlerMixin" diff --git a/build.gradle b/build.gradle index 0921fab..1a056a2 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ plugins { } ext { - release=project.properties['release'] ?: false + release = project.properties['release'] ?: false } var base_version = "${version_major}.${version_minor}" @@ -68,7 +68,7 @@ subprojects { 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_author, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Timestamp' : System.currentTimeMillis(), + 'Timestamp' : System.currentTimeMillis(), 'Built-On-Java' : "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", 'Build-On-Minecraft' : minecraft_version ]) diff --git a/gradle.properties b/gradle.properties index 3200bbb..b3f6399 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,33 +3,25 @@ version_major=1 version_minor=0 version_patch=3 project_group=com.hypherionmc.craterlib - #Mod mod_author=HypherionSA mod_id=craterlib mod_name=CraterLib - # Shared minecraft_version=1.20.3 - # Fabric fabric_loader=0.15.0 fabric_api=0.91.1+1.20.3 - # Forge forge_version=49.0.2 - # NeoForged neoforge_version=8-beta - # Dependencies mod_menu_version=8.0.0-beta.2 moon_config=1.0.9 - # Publishing curse_id=867099 modrinth_id=Nn8Wasaq - # Gradle org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false \ No newline at end of file