mirror of
https://github.com/RoBaertschi/EnvironmentTech.git
synced 2025-04-19 23:03:28 +00:00
Glass Tank, env detector move to custom component
This commit is contained in:
parent
58befd34b3
commit
1d4de7d85e
@ -96,7 +96,7 @@ runs {
|
|||||||
// applies to all the run configs below
|
// applies to all the run configs below
|
||||||
|
|
||||||
configureEach {
|
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.
|
// The markers can be added/remove as needed separated by commas.
|
||||||
// "SCAN": For mods scan.
|
// "SCAN": For mods scan.
|
||||||
// "REGISTRIES": For firing of registry events.
|
// "REGISTRIES": For firing of registry events.
|
||||||
|
@ -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
|
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
|
e6d7f80a803863d6196f53d67487af2b3644323b assets/environmenttech/models/item/env_detector_0.json
|
||||||
8f94bb9cdf778fafd04225c255a740669597a4f3 assets/environmenttech/models/item/env_detector_1.json
|
8f94bb9cdf778fafd04225c255a740669597a4f3 assets/environmenttech/models/item/env_detector_1.json
|
||||||
e0d2aa063a62122c33bdf28bd675d8cd0823465c assets/environmenttech/models/item/env_detector_2.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
|
5acb213593a6932b20ac83a20cc30803631d519d assets/environmenttech/models/item/env_detector_7.json
|
||||||
ba599a8c31f0b4f9c41d5a5f79a83db41c29cb49 assets/environmenttech/models/item/env_detector_8.json
|
ba599a8c31f0b4f9c41d5a5f79a83db41c29cb49 assets/environmenttech/models/item/env_detector_8.json
|
||||||
f3f1594483691b7873d0679104a892bae138e925 assets/environmenttech/models/item/environmental_essence.json
|
f3f1594483691b7873d0679104a892bae138e925 assets/environmenttech/models/item/environmental_essence.json
|
||||||
|
a7c7074a907b7e00d0d320bd7bc4d7245eb58f19 assets/environmenttech/models/item/glass_tank.json
|
||||||
|
@ -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
|
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
|
d462a41d1b0fda35660ed3e4c807f83f6dc0e0cd data/environmenttech/recipes/environmental_essence.json
|
||||||
|
935db7eeeeb437ba83909ba578f14109f62485ef data/environmenttech/recipes/glass_tank.json
|
||||||
|
@ -4,55 +4,55 @@
|
|||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_0",
|
"model": "environmenttech:item/env_detector_0",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 0.0
|
"environmenttech:filled": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_1",
|
"model": "environmenttech:item/env_detector_1",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 1.0
|
"environmenttech:filled": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_2",
|
"model": "environmenttech:item/env_detector_2",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 2.0
|
"environmenttech:filled": 2.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_3",
|
"model": "environmenttech:item/env_detector_3",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 3.0
|
"environmenttech:filled": 3.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_4",
|
"model": "environmenttech:item/env_detector_4",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 4.0
|
"environmenttech:filled": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_5",
|
"model": "environmenttech:item/env_detector_5",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 5.0
|
"environmenttech:filled": 5.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_6",
|
"model": "environmenttech:item/env_detector_6",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 6.0
|
"environmenttech:filled": 6.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_7",
|
"model": "environmenttech:item/env_detector_7",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 7.0
|
"environmenttech:filled": 7.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "environmenttech:item/env_detector_8",
|
"model": "environmenttech:item/env_detector_8",
|
||||||
"predicate": {
|
"predicate": {
|
||||||
"minecraft:custom_model_data": 8.0
|
"environmenttech:filled": 8.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "environmenttech:item/glass_tank"
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@ package robaertschi.environmenttech.unittest;
|
|||||||
|
|
||||||
import net.neoforged.fml.common.Mod;
|
import net.neoforged.fml.common.Mod;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
@Mod(value = TestMod.MOD_ID)
|
@Mod(value = TestMod.MOD_ID)
|
||||||
public class TestMod {
|
public class TestMod {
|
||||||
public static final String MOD_ID = "environmenttech_tests";
|
public static final String MOD_ID = "environmenttech_tests";
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package robaertschi.environmenttech;
|
package robaertschi.environmenttech;
|
||||||
|
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.event.config.ModConfigEvent;
|
import net.neoforged.fml.event.config.ModConfigEvent;
|
||||||
@ -28,11 +26,6 @@ public class Config
|
|||||||
public static int maxEnvForNewChunk;
|
public static int maxEnvForNewChunk;
|
||||||
public static int minEnvForNewChunk;
|
public static int minEnvForNewChunk;
|
||||||
|
|
||||||
private static boolean validateItemName(final Object obj)
|
|
||||||
{
|
|
||||||
return obj instanceof String itemName && BuiltInRegistries.ITEM.containsKey(new ResourceLocation(itemName));
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
static void onLoad(final ModConfigEvent event)
|
static void onLoad(final ModConfigEvent event)
|
||||||
{
|
{
|
||||||
|
@ -1,29 +1,21 @@
|
|||||||
package robaertschi.environmenttech;
|
package robaertschi.environmenttech;
|
||||||
|
|
||||||
import com.mojang.logging.LogUtils;
|
import com.mojang.logging.LogUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
|
||||||
import net.neoforged.bus.api.IEventBus;
|
import net.neoforged.bus.api.IEventBus;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.ModContainer;
|
import net.neoforged.fml.ModContainer;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
|
||||||
import net.neoforged.fml.common.Mod;
|
import net.neoforged.fml.common.Mod;
|
||||||
import net.neoforged.fml.config.ModConfig;
|
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.fml.loading.FMLLoader;
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
||||||
import net.neoforged.neoforge.event.server.ServerStartingEvent;
|
|
||||||
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
||||||
import net.neoforged.neoforge.gametest.GameTestHooks;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import robaertschi.environmenttech.client.ETClient;
|
|
||||||
import robaertschi.environmenttech.command.EnvironmenttechCommand;
|
import robaertschi.environmenttech.command.EnvironmenttechCommand;
|
||||||
import robaertschi.environmenttech.data.attachments.ETAttachments;
|
import robaertschi.environmenttech.data.attachments.ETAttachments;
|
||||||
import robaertschi.environmenttech.data.capabilities.ETCapabilities;
|
import robaertschi.environmenttech.data.capabilities.ETCapabilities;
|
||||||
|
import robaertschi.environmenttech.data.components.ETComponents;
|
||||||
import robaertschi.environmenttech.data.recipes.ETRecipes;
|
import robaertschi.environmenttech.data.recipes.ETRecipes;
|
||||||
import robaertschi.environmenttech.level.block.ETBlocks;
|
import robaertschi.environmenttech.level.block.ETBlocks;
|
||||||
import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
|
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.level.particle.ETParticles;
|
||||||
import robaertschi.environmenttech.menu.ETMenus;
|
import robaertschi.environmenttech.menu.ETMenus;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
@Mod(EnvironmentTech.MODID)
|
@Mod(EnvironmentTech.MODID)
|
||||||
public class EnvironmentTech
|
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.
|
// FML will recognize some parameter types like IEventBus or ModContainer and pass them in automatically.
|
||||||
public EnvironmentTech(IEventBus modEventBus, ModContainer modContainer)
|
public EnvironmentTech(IEventBus modEventBus, ModContainer modContainer)
|
||||||
{
|
{
|
||||||
modEventBus.addListener(this::commonSetup);
|
|
||||||
NeoForge.EVENT_BUS.addListener(ETClient::onClientTickEnd);
|
|
||||||
|
|
||||||
modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
||||||
|
|
||||||
@ -68,26 +59,18 @@ public class EnvironmentTech
|
|||||||
ETCapabilities.init(modEventBus);
|
ETCapabilities.init(modEventBus);
|
||||||
ETMenus.init(modEventBus);
|
ETMenus.init(modEventBus);
|
||||||
ETParticles.init(modEventBus);
|
ETParticles.init(modEventBus);
|
||||||
|
ETComponents.DATA_COMPONENTS.register(modEventBus);
|
||||||
|
|
||||||
NeoForge.EVENT_BUS.register(this);
|
NeoForge.EVENT_BUS.register(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void commonSetup(final FMLCommonSetupEvent event)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
private void registerCommands(RegisterCommandsEvent event) {
|
private void registerCommands(RegisterCommandsEvent event) {
|
||||||
new EnvironmenttechCommand(event.getDispatcher());
|
new EnvironmenttechCommand(event.getDispatcher());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
public void onServerStarting(ServerStartingEvent event)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent()
|
@SubscribeEvent()
|
||||||
public void onPlayerTick(PlayerTickEvent.Post event) {
|
public void onPlayerTick(PlayerTickEvent.Post event) {
|
||||||
var level = event.getEntity().level();
|
var level = event.getEntity().level();
|
||||||
|
@ -2,7 +2,7 @@ package robaertschi.environmenttech.client;
|
|||||||
|
|
||||||
import com.mojang.blaze3d.platform.InputConstants;
|
import com.mojang.blaze3d.platform.InputConstants;
|
||||||
import net.minecraft.client.KeyMapping;
|
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.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
|
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
|
||||||
@ -12,8 +12,11 @@ import org.lwjgl.glfw.GLFW;
|
|||||||
import robaertschi.environmenttech.EnvironmentTech;
|
import robaertschi.environmenttech.EnvironmentTech;
|
||||||
import robaertschi.environmenttech.client.particle.EnvParticleProvider;
|
import robaertschi.environmenttech.client.particle.EnvParticleProvider;
|
||||||
import robaertschi.environmenttech.client.screen.EnvCollectorScreen;
|
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.ETBlockEntities;
|
||||||
import robaertschi.environmenttech.level.block.entity.renderer.EnvCollectorRenderer;
|
import robaertschi.environmenttech.level.block.entity.renderer.EnvCollectorRenderer;
|
||||||
|
import robaertschi.environmenttech.level.item.ETItems;
|
||||||
import robaertschi.environmenttech.level.particle.ETParticles;
|
import robaertschi.environmenttech.level.particle.ETParticles;
|
||||||
import robaertschi.environmenttech.menu.ETMenus;
|
import robaertschi.environmenttech.menu.ETMenus;
|
||||||
|
|
||||||
@ -28,8 +31,12 @@ public class ETClient {
|
|||||||
));
|
));
|
||||||
|
|
||||||
@SubscribeEvent
|
@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
|
@SubscribeEvent
|
||||||
@ -53,7 +60,4 @@ public class ETClient {
|
|||||||
event.register(OPEN_DEBUG_MENU.get());
|
event.register(OPEN_DEBUG_MENU.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onClientTickEnd(ClientTickEvent.Post event) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@ import robaertschi.environmenttech.level.particle.EnvParticle;
|
|||||||
|
|
||||||
@AllArgsConstructor()
|
@AllArgsConstructor()
|
||||||
public class EnvParticleProvider implements ParticleProvider<SimpleParticleType> {
|
public class EnvParticleProvider implements ParticleProvider<SimpleParticleType> {
|
||||||
private final double SPEED_FACTOR = 0.25;
|
|
||||||
private final SpriteSet spriteSet;
|
private final SpriteSet spriteSet;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
package robaertschi.environmenttech.client.renderer;
|
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.Font;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
@ -1,18 +1,11 @@
|
|||||||
package robaertschi.environmenttech.client.screen;
|
package robaertschi.environmenttech.client.screen;
|
||||||
|
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
|
||||||
import robaertschi.environmenttech.EnvironmentTech;
|
import robaertschi.environmenttech.EnvironmentTech;
|
||||||
|
|
||||||
public class ProgressArrowUtils {
|
public class ProgressArrowUtils {
|
||||||
public static final ResourceLocation SPRITE = EnvironmentTech.id("textures/gui/sprites/component/progress_arrow.png");
|
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) {
|
public static int getScaledProgress(int progress, int maxProgress) {
|
||||||
int progressArrowSize = 24; // This is the height in pixels of your arrow
|
int progressArrowSize = 24; // This is the height in pixels of your arrow
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ public class ETAttachments {
|
|||||||
"env", () -> AttachmentType.builder(() -> 0L).serialize(Codec.LONG).build()
|
"env", () -> AttachmentType.builder(() -> 0L).serialize(Codec.LONG).build()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
public static void init(IEventBus eventBus) {
|
public static void init(IEventBus eventBus) {
|
||||||
ATTACHMENT_TYPES.register(eventBus);
|
ATTACHMENT_TYPES.register(eventBus);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
package robaertschi.environmenttech.data.capabilities;
|
|
||||||
|
|
||||||
public record EnvCapabilityContext(EnvType type) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -2,11 +2,12 @@ package robaertschi.environmenttech.data.capabilities;
|
|||||||
|
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public class EnvStorage implements IEnvStorage {
|
public class EnvStorage implements IEnvStorage {
|
||||||
private final EnvType[] acceptedEnvTypes;
|
private final EnvType[] acceptedEnvTypes;
|
||||||
private final long maxEnv;
|
private final long maxEnv;
|
||||||
private long env;
|
private long env;
|
||||||
private long maxTransfer;
|
private final long maxTransfer;
|
||||||
|
|
||||||
public EnvStorage(EnvType acceptedEnvType, long maxEnv, long env, long maxTransfer) {
|
public EnvStorage(EnvType acceptedEnvType, long maxEnv, long env, long maxTransfer) {
|
||||||
this.acceptedEnvTypes = new EnvType[1];
|
this.acceptedEnvTypes = new EnvType[1];
|
||||||
|
@ -4,10 +4,10 @@ package robaertschi.environmenttech.data.capabilities;
|
|||||||
* ENV is pushed based, so you should not be able to extract ENV from anything.
|
* ENV is pushed based, so you should not be able to extract ENV from anything.
|
||||||
* This is the reason for the nonexistent extract method.
|
* This is the reason for the nonexistent extract method.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public interface IEnvStorage {
|
public interface IEnvStorage {
|
||||||
/**
|
/**
|
||||||
* Receive ENV.
|
* Receive ENV.
|
||||||
* The type is provided in {@link EnvCapabilityContext}
|
|
||||||
* @param amount The Amount of ENV to receive.
|
* @param amount The Amount of ENV to receive.
|
||||||
* @param simulate If the operation is to only be simulated and not affect the storage amount
|
* @param simulate If the operation is to only be simulated and not affect the storage amount
|
||||||
* @return How much energy was accepted.
|
* @return How much energy was accepted.
|
||||||
|
@ -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<?>, DataComponentType<FilledComponent>> FILLED_COMPONENT = DATA_COMPONENTS.registerComponentType("filled_component",
|
||||||
|
filledComponentBuilder -> filledComponentBuilder.persistent(FilledComponent.CODEC).networkSynchronized(FilledComponent.STREAM_CODEC)
|
||||||
|
);
|
||||||
|
}
|
@ -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<FilledComponent> CODEC = RecordCodecBuilder.create(filledComponentInstance ->
|
||||||
|
filledComponentInstance.group(
|
||||||
|
Codec.INT.fieldOf("filled").forGetter(FilledComponent::filled)
|
||||||
|
).apply(filledComponentInstance, FilledComponent::new)
|
||||||
|
);
|
||||||
|
public static final StreamCodec<ByteBuf, FilledComponent> STREAM_CODEC = StreamCodec.composite(ByteBufCodecs.INT, FilledComponent::filled, FilledComponent::new);
|
||||||
|
}
|
@ -18,7 +18,6 @@ import net.minecraft.world.item.crafting.Recipe;
|
|||||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||||
import net.minecraft.world.item.crafting.RecipeType;
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.neoforged.neoforge.items.IItemHandler;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
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));
|
return this.input.test(pContainer.getItem(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean matches(@NotNull IItemHandler iItemHandler, @NotNull Level level) {
|
|
||||||
return this.input.test(iItemHandler.getStackInSlot(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull ItemStack assemble(@NotNull Container pCraftingContainer, HolderLookup.@NotNull Provider pRegistries) {
|
public @NotNull ItemStack assemble(@NotNull Container pCraftingContainer, HolderLookup.@NotNull Provider pRegistries) {
|
||||||
return this.output.copy();
|
return this.output.copy();
|
||||||
@ -68,7 +63,7 @@ public record EnvCollectorRecipe(Ingredient input, ItemStack output, int envUsed
|
|||||||
|
|
||||||
private final Map<String, Criterion<?>> criteria = new LinkedHashMap<>();
|
private final Map<String, Criterion<?>> criteria = new LinkedHashMap<>();
|
||||||
// Currently we just ignore the warning, maybe we will use it later, maybe never.
|
// Currently we just ignore the warning, maybe we will use it later, maybe never.
|
||||||
@SuppressWarnings("FieldCanBeLocal")
|
@SuppressWarnings({"FieldCanBeLocal", "unused"})
|
||||||
@Nullable
|
@Nullable
|
||||||
private String group;
|
private String group;
|
||||||
|
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
package robaertschi.environmenttech.datagen;
|
package robaertschi.environmenttech.datagen;
|
||||||
|
|
||||||
import net.minecraft.data.PackOutput;
|
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.BlockStateProvider;
|
||||||
import net.neoforged.neoforge.client.model.generators.ModelFile;
|
import net.neoforged.neoforge.client.model.generators.ModelFile;
|
||||||
import net.neoforged.neoforge.client.model.generators.MultiPartBlockStateBuilder;
|
|
||||||
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
import robaertschi.environmenttech.level.block.ETBlocks;
|
import robaertschi.environmenttech.level.block.ETBlocks;
|
||||||
|
|
||||||
@ -21,31 +18,4 @@ public class ETBlockStateProvider extends BlockStateProvider {
|
|||||||
// registerEnvCollector();
|
// registerEnvCollector();
|
||||||
horizontalBlock(ETBlocks.ENV_COLLECTOR_BLOCK.get(), new ModelFile.UncheckedModelFile(modLoc("block/env_collector")));
|
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -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.ItemModelProvider;
|
||||||
import net.neoforged.neoforge.client.model.generators.ModelFile;
|
import net.neoforged.neoforge.client.model.generators.ModelFile;
|
||||||
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import robaertschi.environmenttech.EnvironmentTech;
|
||||||
import robaertschi.environmenttech.level.block.ETBlocks;
|
import robaertschi.environmenttech.level.block.ETBlocks;
|
||||||
import robaertschi.environmenttech.level.item.ETItems;
|
import robaertschi.environmenttech.level.item.ETItems;
|
||||||
import robaertschi.environmenttech.level.item.EnvDetectorItem;
|
import robaertschi.environmenttech.level.item.EnvDetectorItem;
|
||||||
@ -21,6 +22,7 @@ public class ETItemModelProvider extends ItemModelProvider {
|
|||||||
protected void registerModels() {
|
protected void registerModels() {
|
||||||
withExistingParent(ETBlocks.ENV_COLLECTOR_BLOCK.getId().getPath(), modLoc("block/" + "env_collector"));
|
withExistingParent(ETBlocks.ENV_COLLECTOR_BLOCK.getId().getPath(), modLoc("block/" + "env_collector"));
|
||||||
basicItem(ETItems.ENVIRONMENTAL_ESSENCE_ITEM.get());
|
basicItem(ETItems.ENVIRONMENTAL_ESSENCE_ITEM.get());
|
||||||
|
basicItem(ETItems.GLASS_TANK.get());
|
||||||
registerEnvDetector();
|
registerEnvDetector();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,7 +35,7 @@ public class ETItemModelProvider extends ItemModelProvider {
|
|||||||
ItemModelBuilder sub_item_builder = getBuilder("env_detector_" + i);
|
ItemModelBuilder sub_item_builder = getBuilder("env_detector_" + i);
|
||||||
sub_item_builder.parent(new ModelFile.ExistingModelFile(new ResourceLocation("minecraft", "item/generated"), existingFileHelper));
|
sub_item_builder.parent(new ModelFile.ExistingModelFile(new ResourceLocation("minecraft", "item/generated"), existingFileHelper));
|
||||||
sub_item_builder.texture("layer0", modLoc("item/env_detector_" + i));
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
package robaertschi.environmenttech.datagen;
|
package robaertschi.environmenttech.datagen;
|
||||||
|
|
||||||
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
|
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
|
||||||
|
import net.minecraft.advancements.critereon.ItemPredicate;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.data.recipes.RecipeCategory;
|
||||||
import net.minecraft.data.recipes.RecipeOutput;
|
import net.minecraft.data.recipes.RecipeOutput;
|
||||||
import net.minecraft.data.recipes.RecipeProvider;
|
import net.minecraft.data.recipes.RecipeProvider;
|
||||||
|
import net.minecraft.data.recipes.ShapedRecipeBuilder;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.item.crafting.Ingredient;
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
|
import net.neoforged.neoforge.common.Tags;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import robaertschi.environmenttech.EnvironmentTech;
|
||||||
import robaertschi.environmenttech.data.recipes.EnvCollectorRecipe;
|
import robaertschi.environmenttech.data.recipes.EnvCollectorRecipe;
|
||||||
import robaertschi.environmenttech.level.item.ETItems;
|
import robaertschi.environmenttech.level.item.ETItems;
|
||||||
|
|
||||||
@ -30,5 +35,39 @@ public class ETRecipeProvider extends RecipeProvider {
|
|||||||
InventoryChangeTrigger.TriggerInstance.hasItems(Items.IRON_INGOT)
|
InventoryChangeTrigger.TriggerInstance.hasItems(Items.IRON_INGOT)
|
||||||
).unlockedBy("env_collector", InventoryChangeTrigger.TriggerInstance.hasItems(ETItems.ENV_COLLECTOR_BLOCK_ITEM))
|
).unlockedBy("env_collector", InventoryChangeTrigger.TriggerInstance.hasItems(ETItems.ENV_COLLECTOR_BLOCK_ITEM))
|
||||||
.save(recipeOutput);
|
.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"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package robaertschi.environmenttech.level.block;
|
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.block.state.BlockBehaviour;
|
||||||
import net.minecraft.world.level.material.MapColor;
|
|
||||||
import net.neoforged.bus.api.IEventBus;
|
import net.neoforged.bus.api.IEventBus;
|
||||||
import net.neoforged.neoforge.registries.DeferredBlock;
|
import net.neoforged.neoforge.registries.DeferredBlock;
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
@ -3,16 +3,12 @@ package robaertschi.environmenttech.level.block;
|
|||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.minecraft.core.BlockPos;
|
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.server.level.ServerLevel;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.ItemInteractionResult;
|
import net.minecraft.world.ItemInteractionResult;
|
||||||
import net.minecraft.world.MenuProvider;
|
import net.minecraft.world.MenuProvider;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
@ -35,12 +31,9 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
|
import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
|
||||||
import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity;
|
import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity;
|
||||||
import robaertschi.environmenttech.menu.EnvCollectorMenu;
|
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import static robaertschi.environmenttech.EnvironmentTech.MODID;
|
|
||||||
|
|
||||||
@ParametersAreNonnullByDefault()
|
@ParametersAreNonnullByDefault()
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class EnvCollectorBlock extends BaseEntityBlock {
|
public class EnvCollectorBlock extends BaseEntityBlock {
|
||||||
@ -69,7 +62,7 @@ public class EnvCollectorBlock extends BaseEntityBlock {
|
|||||||
return shape;
|
return shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VoxelShape SHAPE = makeShape();
|
public static final VoxelShape SHAPE = makeShape();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @NotNull MapCodec<? extends BaseEntityBlock> codec() {
|
protected @NotNull MapCodec<? extends BaseEntityBlock> codec() {
|
||||||
@ -92,6 +85,7 @@ public class EnvCollectorBlock extends BaseEntityBlock {
|
|||||||
return state.setValue(FACING, direction.rotate(state.getValue(FACING)));
|
return state.setValue(FACING, direction.rotate(state.getValue(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
protected @NotNull BlockState mirror(BlockState pState, Mirror pMirror) {
|
protected @NotNull BlockState mirror(BlockState pState, Mirror pMirror) {
|
||||||
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
|
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
|
||||||
@ -125,6 +119,7 @@ public class EnvCollectorBlock extends BaseEntityBlock {
|
|||||||
return openMenu(pLevel, pPos, pPlayer);
|
return openMenu(pLevel, pPos, pPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("SameReturnValue")
|
||||||
private InteractionResult openMenu(Level pLevel, BlockPos pPos, Player pPlayer) {
|
private InteractionResult openMenu(Level pLevel, BlockPos pPos, Player pPlayer) {
|
||||||
if (!pLevel.isClientSide) {
|
if (!pLevel.isClientSide) {
|
||||||
BlockEntity be = pLevel.getBlockEntity(pPos);
|
BlockEntity be = pLevel.getBlockEntity(pPos);
|
||||||
@ -139,7 +134,7 @@ public class EnvCollectorBlock extends BaseEntityBlock {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @NotNull ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHitResult) {
|
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;
|
return ItemInteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,6 +12,7 @@ import static robaertschi.environmenttech.EnvironmentTech.MODID;
|
|||||||
public class ETBlockEntities {
|
public class ETBlockEntities {
|
||||||
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, MODID);
|
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, MODID);
|
||||||
|
|
||||||
|
@SuppressWarnings("DataFlowIssue")
|
||||||
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<EnvCollectorBlockEntity>> ENV_COLLECTOR_BLOCK_ENTITY =
|
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<EnvCollectorBlockEntity>> ENV_COLLECTOR_BLOCK_ENTITY =
|
||||||
BLOCK_ENTITIES.register("env_collector",
|
BLOCK_ENTITIES.register("env_collector",
|
||||||
() -> BlockEntityType.Builder.of(EnvCollectorBlockEntity::new,
|
() -> BlockEntityType.Builder.of(EnvCollectorBlockEntity::new,
|
||||||
|
@ -3,9 +3,6 @@ package robaertschi.environmenttech.level.block.entity;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.HolderLookup;
|
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.nbt.CompoundTag;
|
||||||
import net.minecraft.network.Connection;
|
import net.minecraft.network.Connection;
|
||||||
import net.minecraft.network.chat.Component;
|
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 = 0;
|
||||||
public static final int SLOT_INPUT_COUNT = 1;
|
public static final int SLOT_INPUT_COUNT = 1;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static final int SLOT_OUTPUT = 0;
|
public static final int SLOT_OUTPUT = 0;
|
||||||
public static final int SLOT_OUTPUT_COUNT = 1;
|
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 INVENTORY_KEY = "Inventory";
|
||||||
public static final String ENV_KEY = "ENV";
|
public static final String ENV_KEY = "ENV";
|
||||||
public static final String PROGRESS_KEY = "Progress";
|
public static final String PROGRESS_KEY = "Progress";
|
||||||
public static final String MAX_PROGRESS_KEY = "MaxProgress";
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final ItemStackHandler inventory = new ItemStackHandler(2) {
|
private final ItemStackHandler inventory = new ItemStackHandler(2) {
|
||||||
@ -153,6 +150,7 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider
|
|||||||
return this.inventory.getStackInSlot(1);
|
return this.inventory.getStackInSlot(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public void setInputItem(ItemStack itemStack) {
|
public void setInputItem(ItemStack itemStack) {
|
||||||
this.inventory.setStackInSlot(0, 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) {
|
if (takeEnv <= 0) {
|
||||||
ChunkAccess currentChunk = level.getChunkAt(blockPos);
|
ChunkAccess currentChunk = level.getChunkAt(blockPos);
|
||||||
@ -179,8 +177,6 @@ public class EnvCollectorBlockEntity extends BlockEntity implements MenuProvider
|
|||||||
if (hasRecipe(level)) {
|
if (hasRecipe(level)) {
|
||||||
if (progress > 0 && progress < getMaxProgress()) {
|
if (progress > 0 && progress < getMaxProgress()) {
|
||||||
progress++;
|
progress++;
|
||||||
// setChanged();
|
|
||||||
// level.sendBlockUpdated(getBlockPos(), blockState, blockState, Block.UPDATE_CLIENTS);
|
|
||||||
} else if (progress > 0) {
|
} else if (progress > 0) {
|
||||||
produce(level);
|
produce(level);
|
||||||
progress = 0;
|
progress = 0;
|
||||||
|
@ -3,7 +3,6 @@ package robaertschi.environmenttech.level.block.entity.renderer;
|
|||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.GameRenderer;
|
|
||||||
import net.minecraft.client.renderer.LightTexture;
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
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.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Vec3i;
|
import net.minecraft.core.Vec3i;
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
|
||||||
import net.minecraft.world.item.ItemDisplayContext;
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
@ -27,6 +25,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
public class EnvCollectorRenderer implements BlockEntityRenderer<EnvCollectorBlockEntity> {
|
public class EnvCollectorRenderer implements BlockEntityRenderer<EnvCollectorBlockEntity> {
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public EnvCollectorRenderer(BlockEntityRendererProvider.Context context) {}
|
public EnvCollectorRenderer(BlockEntityRendererProvider.Context context) {}
|
||||||
public int spawnParticle = 0;
|
public int spawnParticle = 0;
|
||||||
|
|
||||||
|
@ -9,9 +9,6 @@ import net.minecraft.world.item.CreativeModeTabs;
|
|||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.component.CustomModelData;
|
import net.minecraft.world.item.component.CustomModelData;
|
||||||
import net.neoforged.bus.api.IEventBus;
|
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.DeferredHolder;
|
||||||
import net.neoforged.neoforge.registries.DeferredItem;
|
import net.neoforged.neoforge.registries.DeferredItem;
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
@ -19,7 +16,6 @@ import robaertschi.environmenttech.level.block.ETBlocks;
|
|||||||
|
|
||||||
import static robaertschi.environmenttech.EnvironmentTech.MODID;
|
import static robaertschi.environmenttech.EnvironmentTech.MODID;
|
||||||
|
|
||||||
@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD)
|
|
||||||
public class ETItems {
|
public class ETItems {
|
||||||
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID);
|
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID);
|
||||||
|
|
||||||
@ -40,6 +36,7 @@ public class ETItems {
|
|||||||
);
|
);
|
||||||
|
|
||||||
public static final DeferredItem<Item> ENVIRONMENTAL_ESSENCE_ITEM = ITEMS.registerSimpleItem("environmental_essence");
|
public static final DeferredItem<Item> ENVIRONMENTAL_ESSENCE_ITEM = ITEMS.registerSimpleItem("environmental_essence");
|
||||||
|
public static final DeferredItem<Item> GLASS_TANK = ITEMS.registerSimpleItem("glass_tank");
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@ -52,6 +49,7 @@ public class ETItems {
|
|||||||
output.accept(ENV_DETECTOR_ITEM.get());
|
output.accept(ENV_DETECTOR_ITEM.get());
|
||||||
// output.accept(EXAMPLE_BLOCK_ITEM.get());
|
// output.accept(EXAMPLE_BLOCK_ITEM.get());
|
||||||
output.accept(ENVIRONMENTAL_ESSENCE_ITEM.get());
|
output.accept(ENVIRONMENTAL_ESSENCE_ITEM.get());
|
||||||
|
output.accept(GLASS_TANK);
|
||||||
}).build());
|
}).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)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,21 @@
|
|||||||
package robaertschi.environmenttech.level.item;
|
package robaertschi.environmenttech.level.item;
|
||||||
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.component.DataComponents;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.player.Player;
|
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.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.item.component.CustomModelData;
|
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import robaertschi.environmenttech.data.attachments.ETAttachments;
|
import robaertschi.environmenttech.data.attachments.ETAttachments;
|
||||||
|
import robaertschi.environmenttech.data.components.ETComponents;
|
||||||
|
import robaertschi.environmenttech.data.components.FilledComponent;
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
public class EnvDetectorItem extends Item {
|
public class EnvDetectorItem extends Item {
|
||||||
@ -27,7 +25,6 @@ public class EnvDetectorItem extends Item {
|
|||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack pStack, TooltipContext pContext, List<Component> pTooltipComponents, TooltipFlag pTooltipFlag) {
|
public void appendHoverText(ItemStack pStack, TooltipContext pContext, List<Component> pTooltipComponents, TooltipFlag pTooltipFlag) {
|
||||||
pTooltipComponents.add(Component.translatable("item.environmenttech.env_detector.tooltip").withStyle(ChatFormatting.GREEN));
|
pTooltipComponents.add(Component.translatable("item.environmenttech.env_detector.tooltip").withStyle(ChatFormatting.GREEN));
|
||||||
@ -46,7 +43,7 @@ public class EnvDetectorItem extends Item {
|
|||||||
steps = STEPS;
|
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);
|
// pPlayer.displayClientMessage(Component.literal("Chunk has " + chunk.getData(ETAttachments.ENV) + " ENV").withStyle(ChatFormatting.GREEN), true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -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_COUNT;
|
||||||
import static robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity.SLOT_INPUT;
|
import static robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity.SLOT_INPUT;
|
||||||
|
|
||||||
|
@SuppressWarnings("SameParameterValue")
|
||||||
public class EnvCollectorMenu extends AbstractContainerMenu {
|
public class EnvCollectorMenu extends AbstractContainerMenu {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@ -53,6 +54,7 @@ public class EnvCollectorMenu extends AbstractContainerMenu {
|
|||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("UnusedReturnValue")
|
||||||
private int addSlotBox(Container playerInventory, int index, int x, int y, int horAmount, int dx, int verAmount, int dy) {
|
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++) {
|
for (int j = 0 ; j < verAmount ; j++) {
|
||||||
index = addSlotRange(playerInventory, index, x, y, horAmount, dx);
|
index = addSlotRange(playerInventory, index, x, y, horAmount, dx);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package robaertschi.environmenttech.utils;
|
package robaertschi.environmenttech.utils;
|
||||||
|
|
||||||
public class MouseUtils {
|
public class MouseUtils {
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static boolean isMouseOver(double mouseX, double mouseY, int x, int y) {
|
public static boolean isMouseOver(double mouseX, double mouseY, int x, int y) {
|
||||||
return isMouseOver(mouseX, mouseY, x, y, 16);
|
return isMouseOver(mouseX, mouseY, x, y, 16);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# Find more information on toml format here: https://github.com/toml-lang/toml
|
# 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
|
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
|
||||||
modLoader="javafml" #mandatory
|
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
|
loaderVersion="${loader_version_range}" #mandatory
|
||||||
# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties.
|
# 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.
|
# 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
|
[[dependencies."${mod_id}"]] #optional
|
||||||
# the modid of the dependency
|
# the modid of the dependency
|
||||||
modId="neoforge" #mandatory
|
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
|
# '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
|
# 'incompatible' will prevent the game from loading when the mod exists, and 'discouraged' will show a warning
|
||||||
type="required" #mandatory
|
type="required" #mandatory
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
{
|
{
|
||||||
"item.environmenttech.env_detector": "ENV Detector",
|
"item.environmenttech.env_detector": "ENV Detector",
|
||||||
"item.environmenttech.environmental_essence": "Environmental Essence",
|
"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",
|
"itemGroup.environmenttech": "Environment Tech",
|
||||||
|
|
||||||
"screen.environmenttech.env_collector": "ENV Collector",
|
"screen.environmenttech.env_collector": "ENV Collector",
|
||||||
"screen.environmenttech.debug": "Debug Menu",
|
"screen.environmenttech.debug": "Debug Menu",
|
||||||
|
|
||||||
"key.environmenttech.open_debug_menu": "Open Debug Menu",
|
"key.environmenttech.open_debug_menu": "Open Debug Menu",
|
||||||
"key.categories.environmenttech": "Environment Tech",
|
"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."
|
|
||||||
}
|
}
|
Binary file not shown.
After Width: | Height: | Size: 172 B |
Loading…
x
Reference in New Issue
Block a user