diff --git a/build.gradle.kts b/build.gradle.kts index 4aaa4a2..a50d17a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -96,7 +96,7 @@ runs { // applies to all the run configs below configureEach { - // Recommended logging data for a userdev environment + // Recommended logging data for an userdev environment // The markers can be added/remove as needed separated by commas. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. diff --git a/src/generated/resources/.cache/0634480364d8061ae303195c707eb408c0d40406 b/src/generated/resources/.cache/0634480364d8061ae303195c707eb408c0d40406 index 5bd7140..6570f61 100644 --- a/src/generated/resources/.cache/0634480364d8061ae303195c707eb408c0d40406 +++ b/src/generated/resources/.cache/0634480364d8061ae303195c707eb408c0d40406 @@ -1,6 +1,6 @@ -// 1.20.6 2024-06-09T12:43:39.789774136 Item Models: environmenttech +// 1.20.6 2024-06-09T17:17:47.56778268 Item Models: environmenttech ee3837b261f3dbe2001ba1192716f0fdf144b663 assets/environmenttech/models/item/env_collector.json -aa962e881326461668467281df08b7b82fcc3fd6 assets/environmenttech/models/item/env_detector.json +719f96ed0245a9dc7c32294d66055e76fc594e30 assets/environmenttech/models/item/env_detector.json e6d7f80a803863d6196f53d67487af2b3644323b assets/environmenttech/models/item/env_detector_0.json 8f94bb9cdf778fafd04225c255a740669597a4f3 assets/environmenttech/models/item/env_detector_1.json e0d2aa063a62122c33bdf28bd675d8cd0823465c assets/environmenttech/models/item/env_detector_2.json @@ -11,3 +11,4 @@ b7bfd8c3f18761814a2c3562bba8aa5da4d6e553 assets/environmenttech/models/item/env_ 5acb213593a6932b20ac83a20cc30803631d519d assets/environmenttech/models/item/env_detector_7.json ba599a8c31f0b4f9c41d5a5f79a83db41c29cb49 assets/environmenttech/models/item/env_detector_8.json f3f1594483691b7873d0679104a892bae138e925 assets/environmenttech/models/item/environmental_essence.json +a7c7074a907b7e00d0d320bd7bc4d7245eb58f19 assets/environmenttech/models/item/glass_tank.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index d282c6e..664a18f 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,3 +1,9 @@ -// 1.20.6 2024-06-08T10:31:27.329089788 Recipes +// 1.20.6 2024-06-09T15:31:42.389888152 Recipes 375ee3cb8eaf222bd0d5576061d1741b5b3d5cff data/environmenttech/advancements/recipes/environmental_essence.json +99b83974e5a7a570c2111cab62a292d126c36524 data/environmenttech/advancements/recipes/misc/env_collector_block_item.json +6962e07757d0b7087542bf51dddde36d4beb3ee4 data/environmenttech/advancements/recipes/misc/glass_tank.json +76b6b2850a79c80b2f2969b93b26bc3832a77ab4 data/environmenttech/advancements/recipes/tools/env_detector_item.json +23bb508829cafa270f61c06c8cc5aa3ad58e54e1 data/environmenttech/recipes/env_collector_block_item.json +17b9bb86d970f10b3784048b790ba541ed3bf8fd data/environmenttech/recipes/env_detector_item.json d462a41d1b0fda35660ed3e4c807f83f6dc0e0cd data/environmenttech/recipes/environmental_essence.json +935db7eeeeb437ba83909ba578f14109f62485ef data/environmenttech/recipes/glass_tank.json diff --git a/src/generated/resources/assets/environmenttech/models/item/env_detector.json b/src/generated/resources/assets/environmenttech/models/item/env_detector.json index 10c951f..22d6b2d 100644 --- a/src/generated/resources/assets/environmenttech/models/item/env_detector.json +++ b/src/generated/resources/assets/environmenttech/models/item/env_detector.json @@ -4,55 +4,55 @@ { "model": "environmenttech:item/env_detector_0", "predicate": { - "minecraft:custom_model_data": 0.0 + "environmenttech:filled": 0.0 } }, { "model": "environmenttech:item/env_detector_1", "predicate": { - "minecraft:custom_model_data": 1.0 + "environmenttech:filled": 1.0 } }, { "model": "environmenttech:item/env_detector_2", "predicate": { - "minecraft:custom_model_data": 2.0 + "environmenttech:filled": 2.0 } }, { "model": "environmenttech:item/env_detector_3", "predicate": { - "minecraft:custom_model_data": 3.0 + "environmenttech:filled": 3.0 } }, { "model": "environmenttech:item/env_detector_4", "predicate": { - "minecraft:custom_model_data": 4.0 + "environmenttech:filled": 4.0 } }, { "model": "environmenttech:item/env_detector_5", "predicate": { - "minecraft:custom_model_data": 5.0 + "environmenttech:filled": 5.0 } }, { "model": "environmenttech:item/env_detector_6", "predicate": { - "minecraft:custom_model_data": 6.0 + "environmenttech:filled": 6.0 } }, { "model": "environmenttech:item/env_detector_7", "predicate": { - "minecraft:custom_model_data": 7.0 + "environmenttech:filled": 7.0 } }, { "model": "environmenttech:item/env_detector_8", "predicate": { - "minecraft:custom_model_data": 8.0 + "environmenttech:filled": 8.0 } } ] diff --git a/src/generated/resources/assets/environmenttech/models/item/glass_tank.json b/src/generated/resources/assets/environmenttech/models/item/glass_tank.json new file mode 100644 index 0000000..b19211f --- /dev/null +++ b/src/generated/resources/assets/environmenttech/models/item/glass_tank.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "environmenttech:item/glass_tank" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/advancements/recipes/misc/env_collector_block_item.json b/src/generated/resources/data/environmenttech/advancements/recipes/misc/env_collector_block_item.json new file mode 100644 index 0000000..5c8cda5 --- /dev/null +++ b/src/generated/resources/data/environmenttech/advancements/recipes/misc/env_collector_block_item.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "environmenttech:env_collector_block_item" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hopper": { + "conditions": { + "items": [ + { + "items": "minecraft:hopper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "oak_log": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "oak_plank": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "oak_plank", + "oak_log", + "hopper" + ] + ], + "rewards": { + "recipes": [ + "environmenttech:env_collector_block_item" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/advancements/recipes/misc/glass_tank.json b/src/generated/resources/data/environmenttech/advancements/recipes/misc/glass_tank.json new file mode 100644 index 0000000..d3f157e --- /dev/null +++ b/src/generated/resources/data/environmenttech/advancements/recipes/misc/glass_tank.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "glass_pain": { + "conditions": { + "items": [ + { + "items": "#c:glass_panes" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "environmenttech:glass_tank" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "iron_ingot", + "glass_pain" + ] + ], + "rewards": { + "recipes": [ + "environmenttech:glass_tank" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/advancements/recipes/tools/env_detector_item.json b/src/generated/resources/data/environmenttech/advancements/recipes/tools/env_detector_item.json new file mode 100644 index 0000000..ece70e2 --- /dev/null +++ b/src/generated/resources/data/environmenttech/advancements/recipes/tools/env_detector_item.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "glass_tank": { + "conditions": { + "items": [ + { + "items": "environmenttech:glass_tank" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "environmenttech:env_detector_item" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hopper": { + "conditions": { + "items": [ + { + "items": "minecraft:hopper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "stick": { + "conditions": { + "items": [ + { + "items": "#c:rods/wooden" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "glass_tank", + "hopper", + "stick" + ] + ], + "rewards": { + "recipes": [ + "environmenttech:env_detector_item" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/recipes/env_collector_block_item.json b/src/generated/resources/data/environmenttech/recipes/env_collector_block_item.json new file mode 100644 index 0000000..22a24ef --- /dev/null +++ b/src/generated/resources/data/environmenttech/recipes/env_collector_block_item.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "h": { + "item": "minecraft:hopper" + }, + "l": { + "item": "minecraft:oak_log" + }, + "p": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "lhl", + "l l", + "ppp" + ], + "result": { + "count": 1, + "id": "environmenttech:env_collector" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/recipes/env_detector_item.json b/src/generated/resources/data/environmenttech/recipes/env_detector_item.json new file mode 100644 index 0000000..b96909b --- /dev/null +++ b/src/generated/resources/data/environmenttech/recipes/env_detector_item.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "h": { + "item": "minecraft:hopper" + }, + "s": { + "tag": "c:rods/wooden" + }, + "t": { + "item": "environmenttech:glass_tank" + } + }, + "pattern": [ + "h", + "t", + "s" + ], + "result": { + "count": 1, + "id": "environmenttech:env_detector" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/environmenttech/recipes/glass_tank.json b/src/generated/resources/data/environmenttech/recipes/glass_tank.json new file mode 100644 index 0000000..46bff16 --- /dev/null +++ b/src/generated/resources/data/environmenttech/recipes/glass_tank.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "g": { + "tag": "c:glass_panes" + }, + "i": { + "tag": "c:ingots/iron" + } + }, + "pattern": [ + "ggg", + "gig", + "ggg" + ], + "result": { + "count": 1, + "id": "environmenttech:glass_tank" + } +} \ No newline at end of file diff --git a/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java b/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java index cade2b5..0dcf83e 100644 --- a/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java +++ b/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java @@ -3,6 +3,7 @@ package robaertschi.environmenttech.unittest; import net.neoforged.fml.common.Mod; +@SuppressWarnings("unused") @Mod(value = TestMod.MOD_ID) public class TestMod { public static final String MOD_ID = "environmenttech_tests"; diff --git a/src/main/java/robaertschi/environmenttech/Config.java b/src/main/java/robaertschi/environmenttech/Config.java index 41c3d6a..4b233be 100644 --- a/src/main/java/robaertschi/environmenttech/Config.java +++ b/src/main/java/robaertschi/environmenttech/Config.java @@ -1,7 +1,5 @@ package robaertschi.environmenttech; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.event.config.ModConfigEvent; @@ -28,11 +26,6 @@ public class Config public static int maxEnvForNewChunk; public static int minEnvForNewChunk; - private static boolean validateItemName(final Object obj) - { - return obj instanceof String itemName && BuiltInRegistries.ITEM.containsKey(new ResourceLocation(itemName)); - } - @SubscribeEvent static void onLoad(final ModConfigEvent event) { diff --git a/src/main/java/robaertschi/environmenttech/EnvironmentTech.java b/src/main/java/robaertschi/environmenttech/EnvironmentTech.java index 807d5b5..dc70ad7 100644 --- a/src/main/java/robaertschi/environmenttech/EnvironmentTech.java +++ b/src/main/java/robaertschi/environmenttech/EnvironmentTech.java @@ -1,29 +1,21 @@ package robaertschi.environmenttech; import com.mojang.logging.LogUtils; -import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; -import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; -import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.fml.loading.FMLEnvironment; import net.neoforged.fml.loading.FMLLoader; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.event.RegisterCommandsEvent; -import net.neoforged.neoforge.event.server.ServerStartingEvent; import net.neoforged.neoforge.event.tick.PlayerTickEvent; -import net.neoforged.neoforge.gametest.GameTestHooks; import org.slf4j.Logger; -import robaertschi.environmenttech.client.ETClient; import robaertschi.environmenttech.command.EnvironmenttechCommand; import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.capabilities.ETCapabilities; +import robaertschi.environmenttech.data.components.ETComponents; import robaertschi.environmenttech.data.recipes.ETRecipes; import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.entity.ETBlockEntities; @@ -31,6 +23,7 @@ import robaertschi.environmenttech.level.item.ETItems; import robaertschi.environmenttech.level.particle.ETParticles; import robaertschi.environmenttech.menu.ETMenus; +@SuppressWarnings("unused") @Mod(EnvironmentTech.MODID) public class EnvironmentTech { @@ -55,8 +48,6 @@ public class EnvironmentTech // FML will recognize some parameter types like IEventBus or ModContainer and pass them in automatically. public EnvironmentTech(IEventBus modEventBus, ModContainer modContainer) { - modEventBus.addListener(this::commonSetup); - NeoForge.EVENT_BUS.addListener(ETClient::onClientTickEnd); modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC); @@ -68,26 +59,18 @@ public class EnvironmentTech ETCapabilities.init(modEventBus); ETMenus.init(modEventBus); ETParticles.init(modEventBus); + ETComponents.DATA_COMPONENTS.register(modEventBus); NeoForge.EVENT_BUS.register(this); } - private void commonSetup(final FMLCommonSetupEvent event) - { - } - @SubscribeEvent private void registerCommands(RegisterCommandsEvent event) { new EnvironmenttechCommand(event.getDispatcher()); } - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) - { - } - @SubscribeEvent() public void onPlayerTick(PlayerTickEvent.Post event) { var level = event.getEntity().level(); diff --git a/src/main/java/robaertschi/environmenttech/client/ETClient.java b/src/main/java/robaertschi/environmenttech/client/ETClient.java index 6dec31b..bf0ee9b 100644 --- a/src/main/java/robaertschi/environmenttech/client/ETClient.java +++ b/src/main/java/robaertschi/environmenttech/client/ETClient.java @@ -2,7 +2,7 @@ package robaertschi.environmenttech.client; import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.KeyMapping; -import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.item.ItemProperties; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; @@ -12,8 +12,11 @@ import org.lwjgl.glfw.GLFW; import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.client.particle.EnvParticleProvider; import robaertschi.environmenttech.client.screen.EnvCollectorScreen; +import robaertschi.environmenttech.data.components.ETComponents; +import robaertschi.environmenttech.data.components.FilledComponent; import robaertschi.environmenttech.level.block.entity.ETBlockEntities; import robaertschi.environmenttech.level.block.entity.renderer.EnvCollectorRenderer; +import robaertschi.environmenttech.level.item.ETItems; import robaertschi.environmenttech.level.particle.ETParticles; import robaertschi.environmenttech.menu.ETMenus; @@ -28,8 +31,12 @@ public class ETClient { )); @SubscribeEvent - public static void setup(FMLClientSetupEvent event) { - + public static void clientSetup(FMLClientSetupEvent event) { + event.enqueueWork(() -> ItemProperties.register( + ETItems.ENV_DETECTOR_ITEM.get(), + EnvironmentTech.id("filled"), + (pStack, pLevel, pEntity, pSeed) -> pStack.getOrDefault(ETComponents.FILLED_COMPONENT, new FilledComponent(0)).filled() + )); } @SubscribeEvent @@ -53,7 +60,4 @@ public class ETClient { event.register(OPEN_DEBUG_MENU.get()); } } - - public static void onClientTickEnd(ClientTickEvent.Post event) { - } } diff --git a/src/main/java/robaertschi/environmenttech/client/particle/EnvParticleProvider.java b/src/main/java/robaertschi/environmenttech/client/particle/EnvParticleProvider.java index db09a0f..c8ead13 100644 --- a/src/main/java/robaertschi/environmenttech/client/particle/EnvParticleProvider.java +++ b/src/main/java/robaertschi/environmenttech/client/particle/EnvParticleProvider.java @@ -12,7 +12,6 @@ import robaertschi.environmenttech.level.particle.EnvParticle; @AllArgsConstructor() public class EnvParticleProvider implements ParticleProvider { - private final double SPEED_FACTOR = 0.25; private final SpriteSet spriteSet; diff --git a/src/main/java/robaertschi/environmenttech/client/renderer/EnvStorageRenderer.java b/src/main/java/robaertschi/environmenttech/client/renderer/EnvStorageRenderer.java index 4554759..596ece9 100644 --- a/src/main/java/robaertschi/environmenttech/client/renderer/EnvStorageRenderer.java +++ b/src/main/java/robaertschi/environmenttech/client/renderer/EnvStorageRenderer.java @@ -1,9 +1,5 @@ package robaertschi.environmenttech.client.renderer; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Lombok; -import lombok.RequiredArgsConstructor; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; diff --git a/src/main/java/robaertschi/environmenttech/client/screen/ProgressArrowUtils.java b/src/main/java/robaertschi/environmenttech/client/screen/ProgressArrowUtils.java index bd79ae3..870d987 100644 --- a/src/main/java/robaertschi/environmenttech/client/screen/ProgressArrowUtils.java +++ b/src/main/java/robaertschi/environmenttech/client/screen/ProgressArrowUtils.java @@ -1,18 +1,11 @@ package robaertschi.environmenttech.client.screen; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; import robaertschi.environmenttech.EnvironmentTech; public class ProgressArrowUtils { public static final ResourceLocation SPRITE = EnvironmentTech.id("textures/gui/sprites/component/progress_arrow.png"); - public static void draw(GuiGraphics guiGraphics, int x, int y, int progress) { - int j1 = Mth.ceil(progress * 22.0F); - guiGraphics.blit(SPRITE, x, y, 1, 0, 0, 0, 0, 22, 16); - } - public static int getScaledProgress(int progress, int maxProgress) { int progressArrowSize = 24; // This is the height in pixels of your arrow diff --git a/src/main/java/robaertschi/environmenttech/data/attachments/ETAttachments.java b/src/main/java/robaertschi/environmenttech/data/attachments/ETAttachments.java index cf2622d..7c58204 100644 --- a/src/main/java/robaertschi/environmenttech/data/attachments/ETAttachments.java +++ b/src/main/java/robaertschi/environmenttech/data/attachments/ETAttachments.java @@ -16,6 +16,7 @@ public class ETAttachments { "env", () -> AttachmentType.builder(() -> 0L).serialize(Codec.LONG).build() ); + public static void init(IEventBus eventBus) { ATTACHMENT_TYPES.register(eventBus); } diff --git a/src/main/java/robaertschi/environmenttech/data/capabilities/EnvCapabilityContext.java b/src/main/java/robaertschi/environmenttech/data/capabilities/EnvCapabilityContext.java deleted file mode 100644 index 0a17251..0000000 --- a/src/main/java/robaertschi/environmenttech/data/capabilities/EnvCapabilityContext.java +++ /dev/null @@ -1,6 +0,0 @@ -package robaertschi.environmenttech.data.capabilities; - -public record EnvCapabilityContext(EnvType type) { - - -} diff --git a/src/main/java/robaertschi/environmenttech/data/capabilities/EnvStorage.java b/src/main/java/robaertschi/environmenttech/data/capabilities/EnvStorage.java index dab5588..7e02b0e 100644 --- a/src/main/java/robaertschi/environmenttech/data/capabilities/EnvStorage.java +++ b/src/main/java/robaertschi/environmenttech/data/capabilities/EnvStorage.java @@ -2,11 +2,12 @@ package robaertschi.environmenttech.data.capabilities; import net.minecraft.util.Mth; +@SuppressWarnings("unused") public class EnvStorage implements IEnvStorage { private final EnvType[] acceptedEnvTypes; private final long maxEnv; private long env; - private long maxTransfer; + private final long maxTransfer; public EnvStorage(EnvType acceptedEnvType, long maxEnv, long env, long maxTransfer) { this.acceptedEnvTypes = new EnvType[1]; diff --git a/src/main/java/robaertschi/environmenttech/data/capabilities/IEnvStorage.java b/src/main/java/robaertschi/environmenttech/data/capabilities/IEnvStorage.java index 967041b..f4f7542 100644 --- a/src/main/java/robaertschi/environmenttech/data/capabilities/IEnvStorage.java +++ b/src/main/java/robaertschi/environmenttech/data/capabilities/IEnvStorage.java @@ -4,10 +4,10 @@ package robaertschi.environmenttech.data.capabilities; * ENV is pushed based, so you should not be able to extract ENV from anything. * This is the reason for the nonexistent extract method. */ +@SuppressWarnings("unused") public interface IEnvStorage { /** * Receive ENV. - * The type is provided in {@link EnvCapabilityContext} * @param amount The Amount of ENV to receive. * @param simulate If the operation is to only be simulated and not affect the storage amount * @return How much energy was accepted. diff --git a/src/main/java/robaertschi/environmenttech/data/components/ETComponents.java b/src/main/java/robaertschi/environmenttech/data/components/ETComponents.java new file mode 100644 index 0000000..d6eb171 --- /dev/null +++ b/src/main/java/robaertschi/environmenttech/data/components/ETComponents.java @@ -0,0 +1,14 @@ +package robaertschi.environmenttech.data.components; + +import net.minecraft.core.component.DataComponentType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; +import robaertschi.environmenttech.EnvironmentTech; + +public class ETComponents { + public static final DeferredRegister.DataComponents DATA_COMPONENTS = DeferredRegister.createDataComponents(EnvironmentTech.MODID); + + public static final DeferredHolder, DataComponentType> FILLED_COMPONENT = DATA_COMPONENTS.registerComponentType("filled_component", + filledComponentBuilder -> filledComponentBuilder.persistent(FilledComponent.CODEC).networkSynchronized(FilledComponent.STREAM_CODEC) + ); +} diff --git a/src/main/java/robaertschi/environmenttech/data/components/FilledComponent.java b/src/main/java/robaertschi/environmenttech/data/components/FilledComponent.java new file mode 100644 index 0000000..a6e3f8d --- /dev/null +++ b/src/main/java/robaertschi/environmenttech/data/components/FilledComponent.java @@ -0,0 +1,16 @@ +package robaertschi.environmenttech.data.components; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; + +public record FilledComponent(int filled) { + public static final Codec CODEC = RecordCodecBuilder.create(filledComponentInstance -> + filledComponentInstance.group( + Codec.INT.fieldOf("filled").forGetter(FilledComponent::filled) + ).apply(filledComponentInstance, FilledComponent::new) + ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite(ByteBufCodecs.INT, FilledComponent::filled, FilledComponent::new); +} diff --git a/src/main/java/robaertschi/environmenttech/data/recipes/EnvCollectorRecipe.java b/src/main/java/robaertschi/environmenttech/data/recipes/EnvCollectorRecipe.java index c1eaf32..e912730 100644 --- a/src/main/java/robaertschi/environmenttech/data/recipes/EnvCollectorRecipe.java +++ b/src/main/java/robaertschi/environmenttech/data/recipes/EnvCollectorRecipe.java @@ -18,7 +18,6 @@ import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; -import net.neoforged.neoforge.items.IItemHandler; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -31,10 +30,6 @@ public record EnvCollectorRecipe(Ingredient input, ItemStack output, int envUsed return this.input.test(pContainer.getItem(0)); } - public boolean matches(@NotNull IItemHandler iItemHandler, @NotNull Level level) { - return this.input.test(iItemHandler.getStackInSlot(0)); - } - @Override public @NotNull ItemStack assemble(@NotNull Container pCraftingContainer, HolderLookup.@NotNull Provider pRegistries) { return this.output.copy(); @@ -68,7 +63,7 @@ public record EnvCollectorRecipe(Ingredient input, ItemStack output, int envUsed private final Map> criteria = new LinkedHashMap<>(); // Currently we just ignore the warning, maybe we will use it later, maybe never. - @SuppressWarnings("FieldCanBeLocal") + @SuppressWarnings({"FieldCanBeLocal", "unused"}) @Nullable private String group; diff --git a/src/main/java/robaertschi/environmenttech/datagen/ETBlockStateProvider.java b/src/main/java/robaertschi/environmenttech/datagen/ETBlockStateProvider.java index e69a048..cbe7a55 100644 --- a/src/main/java/robaertschi/environmenttech/datagen/ETBlockStateProvider.java +++ b/src/main/java/robaertschi/environmenttech/datagen/ETBlockStateProvider.java @@ -1,11 +1,8 @@ package robaertschi.environmenttech.datagen; import net.minecraft.data.PackOutput; -import net.minecraft.world.level.block.Block; -import net.neoforged.neoforge.client.model.generators.BlockModelBuilder; import net.neoforged.neoforge.client.model.generators.BlockStateProvider; import net.neoforged.neoforge.client.model.generators.ModelFile; -import net.neoforged.neoforge.client.model.generators.MultiPartBlockStateBuilder; import net.neoforged.neoforge.common.data.ExistingFileHelper; import robaertschi.environmenttech.level.block.ETBlocks; @@ -21,31 +18,4 @@ public class ETBlockStateProvider extends BlockStateProvider { // registerEnvCollector(); horizontalBlock(ETBlocks.ENV_COLLECTOR_BLOCK.get(), new ModelFile.UncheckedModelFile(modLoc("block/env_collector"))); } - - private void registerEnvCollector() { - var envCollector = ETBlocks.ENV_COLLECTOR_BLOCK; - String path = "env_collector"; - - BlockModelBuilder base = models().getBuilder("block/" + path + "_main"); - base.parent(models().getExistingFile(mcLoc("cube"))); - - base.element() - .from(0f, 0f, 0f) - .to(16f, 16f, 16f) - .allFaces((direction, faceBuilder) -> faceBuilder.texture("#txt")) - .end(); - - base.texture("txt", modLoc("block/env_collector_main")); - base.texture("particle", modLoc("block/env_collector_main")); - - base.renderType("solid"); - - createEnvCollectorModel(envCollector.get(), path, base); - } - - private void createEnvCollectorModel(Block block, String path, BlockModelBuilder frame) { - MultiPartBlockStateBuilder bld = getMultipartBuilder(block); - - bld.part().modelFile(frame).addModel().end(); - } } diff --git a/src/main/java/robaertschi/environmenttech/datagen/ETItemModelProvider.java b/src/main/java/robaertschi/environmenttech/datagen/ETItemModelProvider.java index 06372ab..53ab67f 100644 --- a/src/main/java/robaertschi/environmenttech/datagen/ETItemModelProvider.java +++ b/src/main/java/robaertschi/environmenttech/datagen/ETItemModelProvider.java @@ -6,6 +6,7 @@ import net.neoforged.neoforge.client.model.generators.ItemModelBuilder; import net.neoforged.neoforge.client.model.generators.ItemModelProvider; import net.neoforged.neoforge.client.model.generators.ModelFile; import net.neoforged.neoforge.common.data.ExistingFileHelper; +import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.item.ETItems; import robaertschi.environmenttech.level.item.EnvDetectorItem; @@ -21,6 +22,7 @@ public class ETItemModelProvider extends ItemModelProvider { protected void registerModels() { withExistingParent(ETBlocks.ENV_COLLECTOR_BLOCK.getId().getPath(), modLoc("block/" + "env_collector")); basicItem(ETItems.ENVIRONMENTAL_ESSENCE_ITEM.get()); + basicItem(ETItems.GLASS_TANK.get()); registerEnvDetector(); } @@ -33,7 +35,7 @@ public class ETItemModelProvider extends ItemModelProvider { ItemModelBuilder sub_item_builder = getBuilder("env_detector_" + i); sub_item_builder.parent(new ModelFile.ExistingModelFile(new ResourceLocation("minecraft", "item/generated"), existingFileHelper)); sub_item_builder.texture("layer0", modLoc("item/env_detector_" + i)); - builder.override().predicate(new ResourceLocation("custom_model_data"), i).model(sub_item_builder); + builder.override().predicate(EnvironmentTech.id("filled"), i).model(sub_item_builder); } } diff --git a/src/main/java/robaertschi/environmenttech/datagen/ETRecipeProvider.java b/src/main/java/robaertschi/environmenttech/datagen/ETRecipeProvider.java index 9382565..9ceb173 100644 --- a/src/main/java/robaertschi/environmenttech/datagen/ETRecipeProvider.java +++ b/src/main/java/robaertschi/environmenttech/datagen/ETRecipeProvider.java @@ -1,14 +1,19 @@ package robaertschi.environmenttech.datagen; import net.minecraft.advancements.critereon.InventoryChangeTrigger; +import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; +import net.neoforged.neoforge.common.Tags; import org.jetbrains.annotations.NotNull; +import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.data.recipes.EnvCollectorRecipe; import robaertschi.environmenttech.level.item.ETItems; @@ -30,5 +35,39 @@ public class ETRecipeProvider extends RecipeProvider { InventoryChangeTrigger.TriggerInstance.hasItems(Items.IRON_INGOT) ).unlockedBy("env_collector", InventoryChangeTrigger.TriggerInstance.hasItems(ETItems.ENV_COLLECTOR_BLOCK_ITEM)) .save(recipeOutput); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ETItems.GLASS_TANK) + .define('g', Tags.Items.GLASS_PANES) + .define('i', Tags.Items.INGOTS_IRON) + .pattern("ggg") + .pattern("gig") + .pattern("ggg") + .unlockedBy("iron_ingot", InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(Tags.Items.INGOTS_IRON).build())) + .unlockedBy("glass_pain", InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(Tags.Items.GLASS_PANES).build())) + .save(recipeOutput, EnvironmentTech.id("glass_tank")); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ETItems.ENV_COLLECTOR_BLOCK_ITEM) + .define('p', Items.OAK_PLANKS) + .define('l', Items.OAK_LOG) + .define('h', Items.HOPPER) + .pattern("lhl") + .pattern("l l") + .pattern("ppp") + .unlockedBy("oak_plank", InventoryChangeTrigger.TriggerInstance.hasItems(Items.OAK_PLANKS)) + .unlockedBy("oak_log", InventoryChangeTrigger.TriggerInstance.hasItems(Items.OAK_LOG)) + .unlockedBy("hopper", InventoryChangeTrigger.TriggerInstance.hasItems(Items.HOPPER)) + .save(recipeOutput, EnvironmentTech.id("env_collector_block_item")); + + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, ETItems.ENV_DETECTOR_ITEM) + .define('t', ETItems.GLASS_TANK) + .define('s', Tags.Items.RODS_WOODEN) + .define('h', Items.HOPPER) + .pattern("h") + .pattern("t") + .pattern("s") + .unlockedBy("glass_tank", InventoryChangeTrigger.TriggerInstance.hasItems(ETItems.GLASS_TANK)) + .unlockedBy("hopper", InventoryChangeTrigger.TriggerInstance.hasItems(Items.HOPPER)) + .unlockedBy("stick", InventoryChangeTrigger.TriggerInstance.hasItems(ItemPredicate.Builder.item().of(Tags.Items.RODS_WOODEN).build())) + .save(recipeOutput, EnvironmentTech.id("env_detector_item")); } } diff --git a/src/main/java/robaertschi/environmenttech/level/block/ETBlocks.java b/src/main/java/robaertschi/environmenttech/level/block/ETBlocks.java index e54d9f3..93acf1c 100644 --- a/src/main/java/robaertschi/environmenttech/level/block/ETBlocks.java +++ b/src/main/java/robaertschi/environmenttech/level/block/ETBlocks.java @@ -1,8 +1,6 @@ package robaertschi.environmenttech.level.block; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredBlock; import net.neoforged.neoforge.registries.DeferredRegister; diff --git a/src/main/java/robaertschi/environmenttech/level/block/EnvCollectorBlock.java b/src/main/java/robaertschi/environmenttech/level/block/EnvCollectorBlock.java index d6b983e..7298017 100644 --- a/src/main/java/robaertschi/environmenttech/level/block/EnvCollectorBlock.java +++ b/src/main/java/robaertschi/environmenttech/level/block/EnvCollectorBlock.java @@ -3,16 +3,12 @@ package robaertschi.environmenttech.level.block; import com.mojang.serialization.MapCodec; import lombok.extern.slf4j.Slf4j; import net.minecraft.core.BlockPos; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.ItemInteractionResult; 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.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -35,12 +31,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import robaertschi.environmenttech.level.block.entity.ETBlockEntities; import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity; -import robaertschi.environmenttech.menu.EnvCollectorMenu; import javax.annotation.ParametersAreNonnullByDefault; -import static robaertschi.environmenttech.EnvironmentTech.MODID; - @ParametersAreNonnullByDefault() @Slf4j public class EnvCollectorBlock extends BaseEntityBlock { @@ -69,7 +62,7 @@ public class EnvCollectorBlock extends BaseEntityBlock { return shape; } - public static VoxelShape SHAPE = makeShape(); + public static final VoxelShape SHAPE = makeShape(); @Override protected @NotNull MapCodec codec() { @@ -92,6 +85,7 @@ public class EnvCollectorBlock extends BaseEntityBlock { return state.setValue(FACING, direction.rotate(state.getValue(FACING))); } + @SuppressWarnings("deprecation") @Override protected @NotNull BlockState mirror(BlockState pState, Mirror pMirror) { return pState.rotate(pMirror.getRotation(pState.getValue(FACING))); @@ -125,6 +119,7 @@ public class EnvCollectorBlock extends BaseEntityBlock { return openMenu(pLevel, pPos, pPlayer); } + @SuppressWarnings("SameReturnValue") private InteractionResult openMenu(Level pLevel, BlockPos pPos, Player pPlayer) { if (!pLevel.isClientSide) { BlockEntity be = pLevel.getBlockEntity(pPos); @@ -139,7 +134,7 @@ public class EnvCollectorBlock extends BaseEntityBlock { @Override protected @NotNull ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) { - InteractionResult result = openMenu(pLevel, pPos, pPlayer); + openMenu(pLevel, pPos, pPlayer); return ItemInteractionResult.SUCCESS; } diff --git a/src/main/java/robaertschi/environmenttech/level/block/entity/ContainerUtils.java b/src/main/java/robaertschi/environmenttech/level/block/entity/ContainerUtils.java deleted file mode 100644 index 49c7d8f..0000000 --- a/src/main/java/robaertschi/environmenttech/level/block/entity/ContainerUtils.java +++ /dev/null @@ -1,11 +0,0 @@ -package robaertschi.environmenttech.level.block.entity; - -import net.minecraft.world.Container; -import net.neoforged.neoforge.items.IItemHandlerModifiable; -import net.neoforged.neoforge.items.wrapper.RecipeWrapper; - -public class ContainerUtils { - public static Container itemHandlerToContainer(IItemHandlerModifiable itemHandler) { - return new RecipeWrapper(itemHandler); - } -} diff --git a/src/main/java/robaertschi/environmenttech/level/block/entity/ETBlockEntities.java b/src/main/java/robaertschi/environmenttech/level/block/entity/ETBlockEntities.java index fb4250c..983ad78 100644 --- a/src/main/java/robaertschi/environmenttech/level/block/entity/ETBlockEntities.java +++ b/src/main/java/robaertschi/environmenttech/level/block/entity/ETBlockEntities.java @@ -12,6 +12,7 @@ import static robaertschi.environmenttech.EnvironmentTech.MODID; public class ETBlockEntities { public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, MODID); + @SuppressWarnings("DataFlowIssue") public static final DeferredHolder, BlockEntityType> ENV_COLLECTOR_BLOCK_ENTITY = BLOCK_ENTITIES.register("env_collector", () -> BlockEntityType.Builder.of(EnvCollectorBlockEntity::new, diff --git a/src/main/java/robaertschi/environmenttech/level/block/entity/EnvCollectorBlockEntity.java b/src/main/java/robaertschi/environmenttech/level/block/entity/EnvCollectorBlockEntity.java index 2cfebfc..0ea5157 100644 --- a/src/main/java/robaertschi/environmenttech/level/block/entity/EnvCollectorBlockEntity.java +++ b/src/main/java/robaertschi/environmenttech/level/block/entity/EnvCollectorBlockEntity.java @@ -3,9 +3,6 @@ package robaertschi.environmenttech.level.block.entity; import lombok.Getter; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; -import net.minecraft.core.component.DataComponentPatch; -import net.minecraft.core.component.DataComponentType; -import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.chat.Component; @@ -40,6 +37,7 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider public static final int SLOT_INPUT = 0; public static final int SLOT_INPUT_COUNT = 1; + @SuppressWarnings("unused") public static final int SLOT_OUTPUT = 0; public static final int SLOT_OUTPUT_COUNT = 1; @@ -47,7 +45,6 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider public static final String INVENTORY_KEY = "Inventory"; public static final String ENV_KEY = "ENV"; public static final String PROGRESS_KEY = "Progress"; - public static final String MAX_PROGRESS_KEY = "MaxProgress"; @Getter private final ItemStackHandler inventory = new ItemStackHandler(2) { @@ -153,6 +150,7 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider return this.inventory.getStackInSlot(1); } + @SuppressWarnings("unused") public void setInputItem(ItemStack itemStack) { this.inventory.setStackInSlot(0, itemStack); } @@ -163,7 +161,7 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider } - public void serverTick(ServerLevel level, BlockPos blockPos, BlockState blockState) { + public void serverTick(ServerLevel level, BlockPos blockPos, @SuppressWarnings("unused") BlockState blockState) { if (takeEnv <= 0) { ChunkAccess currentChunk = level.getChunkAt(blockPos); @@ -179,8 +177,6 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider if (hasRecipe(level)) { if (progress > 0 && progress < getMaxProgress()) { progress++; -// setChanged(); -// level.sendBlockUpdated(getBlockPos(), blockState, blockState, Block.UPDATE_CLIENTS); } else if (progress > 0) { produce(level); progress = 0; diff --git a/src/main/java/robaertschi/environmenttech/level/block/entity/renderer/EnvCollectorRenderer.java b/src/main/java/robaertschi/environmenttech/level/block/entity/renderer/EnvCollectorRenderer.java index a99ab6c..40ded90 100644 --- a/src/main/java/robaertschi/environmenttech/level/block/entity/renderer/EnvCollectorRenderer.java +++ b/src/main/java/robaertschi/environmenttech/level/block/entity/renderer/EnvCollectorRenderer.java @@ -3,7 +3,6 @@ package robaertschi.environmenttech.level.block.entity.renderer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; @@ -12,7 +11,6 @@ import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; -import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -27,6 +25,7 @@ import java.util.Objects; @ParametersAreNonnullByDefault public class EnvCollectorRenderer implements BlockEntityRenderer { + @SuppressWarnings("unused") public EnvCollectorRenderer(BlockEntityRendererProvider.Context context) {} public int spawnParticle = 0; diff --git a/src/main/java/robaertschi/environmenttech/level/item/ETItems.java b/src/main/java/robaertschi/environmenttech/level/item/ETItems.java index 43aa9c2..8ef4e5a 100644 --- a/src/main/java/robaertschi/environmenttech/level/item/ETItems.java +++ b/src/main/java/robaertschi/environmenttech/level/item/ETItems.java @@ -9,9 +9,6 @@ import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.Item; import net.minecraft.world.item.component.CustomModelData; import net.neoforged.bus.api.IEventBus; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; @@ -19,7 +16,6 @@ import robaertschi.environmenttech.level.block.ETBlocks; import static robaertschi.environmenttech.EnvironmentTech.MODID; -@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD) public class ETItems { public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID); @@ -40,6 +36,7 @@ public class ETItems { ); public static final DeferredItem ENVIRONMENTAL_ESSENCE_ITEM = ITEMS.registerSimpleItem("environmental_essence"); + public static final DeferredItem GLASS_TANK = ITEMS.registerSimpleItem("glass_tank"); @SuppressWarnings("unused") @@ -52,6 +49,7 @@ public class ETItems { output.accept(ENV_DETECTOR_ITEM.get()); // output.accept(EXAMPLE_BLOCK_ITEM.get()); output.accept(ENVIRONMENTAL_ESSENCE_ITEM.get()); + output.accept(GLASS_TANK); }).build()); @@ -62,10 +60,4 @@ public class ETItems { } - @SuppressWarnings("unused") - @SubscribeEvent() - // Add the example block item to the building blocks tab - public static void addCreative(BuildCreativeModeTabContentsEvent event) - { - } } diff --git a/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java b/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java index 3ab8b85..a5a21d2 100644 --- a/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java +++ b/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java @@ -1,23 +1,21 @@ package robaertschi.environmenttech.level.item; import net.minecraft.ChatFormatting; -import net.minecraft.core.component.DataComponents; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.component.CustomModelData; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import robaertschi.environmenttech.data.attachments.ETAttachments; +import robaertschi.environmenttech.data.components.ETComponents; +import robaertschi.environmenttech.data.components.FilledComponent; import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; -import java.util.Optional; @ParametersAreNonnullByDefault public class EnvDetectorItem extends Item { @@ -27,7 +25,6 @@ public class EnvDetectorItem extends Item { super(properties); } - @Override public void appendHoverText(ItemStack pStack, TooltipContext pContext, List pTooltipComponents, TooltipFlag pTooltipFlag) { pTooltipComponents.add(Component.translatable("item.environmenttech.env_detector.tooltip").withStyle(ChatFormatting.GREEN)); @@ -46,7 +43,7 @@ public class EnvDetectorItem extends Item { steps = STEPS; } - pPlayer.getItemInHand(pUsedHand).set(DataComponents.CUSTOM_MODEL_DATA, new CustomModelData((int)steps)); + pPlayer.getItemInHand(pUsedHand).set(ETComponents.FILLED_COMPONENT.get(), new FilledComponent((int)steps)); // pPlayer.displayClientMessage(Component.literal("Chunk has " + chunk.getData(ETAttachments.ENV) + " ENV").withStyle(ChatFormatting.GREEN), true); } else { diff --git a/src/main/java/robaertschi/environmenttech/menu/EnvCollectorMenu.java b/src/main/java/robaertschi/environmenttech/menu/EnvCollectorMenu.java index 9f54caf..b888b95 100644 --- a/src/main/java/robaertschi/environmenttech/menu/EnvCollectorMenu.java +++ b/src/main/java/robaertschi/environmenttech/menu/EnvCollectorMenu.java @@ -15,6 +15,7 @@ import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity; import static robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity.SLOT_COUNT; import static robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity.SLOT_INPUT; +@SuppressWarnings("SameParameterValue") public class EnvCollectorMenu extends AbstractContainerMenu { @Getter @@ -53,6 +54,7 @@ public class EnvCollectorMenu extends AbstractContainerMenu { return index; } + @SuppressWarnings("UnusedReturnValue") private int addSlotBox(Container playerInventory, int index, int x, int y, int horAmount, int dx, int verAmount, int dy) { for (int j = 0 ; j < verAmount ; j++) { index = addSlotRange(playerInventory, index, x, y, horAmount, dx); diff --git a/src/main/java/robaertschi/environmenttech/utils/MouseUtils.java b/src/main/java/robaertschi/environmenttech/utils/MouseUtils.java index 457ef88..7b9dac4 100644 --- a/src/main/java/robaertschi/environmenttech/utils/MouseUtils.java +++ b/src/main/java/robaertschi/environmenttech/utils/MouseUtils.java @@ -1,6 +1,7 @@ package robaertschi.environmenttech.utils; public class MouseUtils { + @SuppressWarnings("unused") public static boolean isMouseOver(double mouseX, double mouseY, int x, int y) { return isMouseOver(mouseX, mouseY, x, y, 16); } diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 651e31d..63e5ae6 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -5,7 +5,7 @@ # Find more information on toml format here: https://github.com/toml-lang/toml # The name of the mod loader type to load - for regular FML @Mod mods it should be javafml modLoader="javafml" #mandatory -# A version range to match for said mod loader - for regular FML @Mod it will be the the FML version. This is currently 47. +# A version range to match for said mod loader - for regular FML @Mod it will be the FML version. This is currently 47. loaderVersion="${loader_version_range}" #mandatory # The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties. # Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here. @@ -56,7 +56,7 @@ config="environmenttech.mixins.json" [[dependencies."${mod_id}"]] #optional # the modid of the dependency modId="neoforge" #mandatory -# The type of the dependency. Can be one of "required", "optional", "incompatible" or "discouraged" (case insensitive). +# The type of the dependency. Can be one of "required", "optional", "incompatible" or "discouraged" (case-insensitive). # 'required' requires the mod to exist, 'optional' does not # 'incompatible' will prevent the game from loading when the mod exists, and 'discouraged' will show a warning type="required" #mandatory diff --git a/src/main/resources/assets/environmenttech/lang/en_us.json b/src/main/resources/assets/environmenttech/lang/en_us.json index b69497d..f92fb45 100644 --- a/src/main/resources/assets/environmenttech/lang/en_us.json +++ b/src/main/resources/assets/environmenttech/lang/en_us.json @@ -1,11 +1,14 @@ { "item.environmenttech.env_detector": "ENV Detector", "item.environmenttech.environmental_essence": "Environmental Essence", + "item.environmenttech.env_detector.tooltip": "The ENV Detector is a handy device that shows you how much ENV is available in the current chunk. It can display from 0 to 16 ENV.", + "block.environmenttech.env_collector": "ENV Collector", "itemGroup.environmenttech": "Environment Tech", + "screen.environmenttech.env_collector": "ENV Collector", "screen.environmenttech.debug": "Debug Menu", + "key.environmenttech.open_debug_menu": "Open Debug Menu", - "key.categories.environmenttech": "Environment Tech", - "item.environmenttech.env_detector.tooltip": "The ENV Detector is a handy device that shows you how much ENV is avilable in the current chunk. It can display from 0 to 16 ENV." + "key.categories.environmenttech": "Environment Tech" } \ No newline at end of file diff --git a/src/main/resources/assets/environmenttech/textures/item/glass_tank.png b/src/main/resources/assets/environmenttech/textures/item/glass_tank.png new file mode 100644 index 0000000..117185d Binary files /dev/null and b/src/main/resources/assets/environmenttech/textures/item/glass_tank.png differ