diff --git a/common/src/main/java/com/copycatsplus/copycats/CCKeys.java b/common/src/main/java/com/copycatsplus/copycats/CCKeys.java index 1893f041b..be46571dc 100644 --- a/common/src/main/java/com/copycatsplus/copycats/CCKeys.java +++ b/common/src/main/java/com/copycatsplus/copycats/CCKeys.java @@ -1,6 +1,7 @@ package com.copycatsplus.copycats; import com.mojang.blaze3d.platform.InputConstants; +import dev.architectury.injectables.annotations.ExpectPlatform; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; @@ -57,6 +58,10 @@ public static boolean isMouseButtonDown(int button) { .getWindow(), button) == 1; } + @ExpectPlatform + public static void register() { + } + public static boolean ctrlDown() { return Screen.hasControlDown(); } diff --git a/common/src/main/java/com/copycatsplus/copycats/CopycatsClient.java b/common/src/main/java/com/copycatsplus/copycats/CopycatsClient.java index bce4a61dc..5d66e3287 100644 --- a/common/src/main/java/com/copycatsplus/copycats/CopycatsClient.java +++ b/common/src/main/java/com/copycatsplus/copycats/CopycatsClient.java @@ -13,6 +13,7 @@ public class CopycatsClient { public static void init() { LogicalSidedProvider.setClient(Minecraft::getInstance); CCPackets.PACKETS.registerS2CListener(); + CCKeys.register(); BUFFER_CACHE.registerCompartment(KineticCopycatRenderer.KINETIC_COPYCAT, 60); } diff --git a/common/src/main/java/com/copycatsplus/copycats/foundation/copycat/model/kinetic/WrappedRenderWorld.java b/common/src/main/java/com/copycatsplus/copycats/foundation/copycat/model/kinetic/WrappedRenderWorld.java index 015611ba9..064c3fd4d 100644 --- a/common/src/main/java/com/copycatsplus/copycats/foundation/copycat/model/kinetic/WrappedRenderWorld.java +++ b/common/src/main/java/com/copycatsplus/copycats/foundation/copycat/model/kinetic/WrappedRenderWorld.java @@ -4,6 +4,7 @@ import com.copycatsplus.copycats.foundation.copycat.ICopycatBlockEntity; import com.jozufozu.flywheel.core.virtual.VirtualEmptyBlockGetter; import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Registry; @@ -154,7 +155,12 @@ public int getRawBrightness(BlockPos blockPos, int amount) { @Override public int getBlockTint(@NotNull BlockPos pos, @NotNull ColorResolver resolver) { - Biome plainsBiome = Minecraft.getInstance().getConnection().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY).getOrThrow(Biomes.PLAINS); + ClientPacketListener connection = Minecraft.getInstance().getConnection(); + if (connection == null) + return GrassColor.getDefaultColor(); + Biome plainsBiome = connection.registryAccess().registry(Registry.BIOME_REGISTRY).map(r -> r.get(Biomes.PLAINS)).orElse(null); + if (plainsBiome == null) + return GrassColor.getDefaultColor(); return resolver.getColor(plainsBiome, pos.getX(), pos.getZ()); } } diff --git a/common/src/main/resources/assets/copycats/lang/de_de.json b/common/src/main/resources/assets/copycats/lang/de_de.json index ec5f6259d..04c5ca9a2 100644 --- a/common/src/main/resources/assets/copycats/lang/de_de.json +++ b/common/src/main/resources/assets/copycats/lang/de_de.json @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Funktionell", "tooltip.copycats.characteristics.ghost.description": "_Keine Kollision_ mit Entities.", "tooltip.copycats.characteristics.ghost.title": "Geist", + "tooltip.copycats.characteristics.multi_state.description": "Setze _mehrere Kopien_ mit unterschiedlichen Materialien im selben Blockraum.", "tooltip.copycats.characteristics.multi_state.title": "Multi-Status", "tooltip.copycats.characteristics.pre_assembled.description": "_Einzelne Teile_ nach Platzierung zerlegen.", "tooltip.copycats.characteristics.pre_assembled.title": "Vormontiert", diff --git a/common/src/main/resources/assets/copycats/lang/es_cl.json b/common/src/main/resources/assets/copycats/lang/es_cl.json index 03835f4b5..0d0e5ed7a 100644 --- a/common/src/main/resources/assets/copycats/lang/es_cl.json +++ b/common/src/main/resources/assets/copycats/lang/es_cl.json @@ -39,7 +39,7 @@ "item.copycats.copycat_box": "Caja Imitadora", "item.copycats.copycat_catwalk": "Puente Imitador", "itemGroup.copycats.functional": "Crear: Copycats+ | Funcional", - "itemGroup.copycats.main": "Crear: Copycats+ | Decorativo", + "itemGroup.copycats.main": "Crear: Copycats+", "tooltip.copycats.characteristics.copy_cat.description": "Clic derecho en un _gato_.", "tooltip.copycats.characteristics.copy_cat.title": "???", "tooltip.copycats.characteristics.copycat.description": "Clic derecho con el material para _asignar_ y _rotar_. Utiliza una llave inglesa para _remover el material_.", @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Funcional", "tooltip.copycats.characteristics.ghost.description": "_No colisiones_ con entidades.", "tooltip.copycats.characteristics.ghost.title": "Fantasma", + "tooltip.copycats.characteristics.multi_state.description": "Pon _multiples copias_ con diferentes materiales en el mismo espacio de un bloque.", "tooltip.copycats.characteristics.multi_state.title": "Multi-estado", "tooltip.copycats.characteristics.pre_assembled.description": "Desmonta _partes individuales_ después de colocarlos.", "tooltip.copycats.characteristics.pre_assembled.title": "Preensamblado", diff --git a/common/src/main/resources/assets/copycats/lang/es_es.json b/common/src/main/resources/assets/copycats/lang/es_es.json index 6be5289c0..16f472260 100644 --- a/common/src/main/resources/assets/copycats/lang/es_es.json +++ b/common/src/main/resources/assets/copycats/lang/es_es.json @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Funcional", "tooltip.copycats.characteristics.ghost.description": "_No colisiones_ con entidades.", "tooltip.copycats.characteristics.ghost.title": "Fantasma", + "tooltip.copycats.characteristics.multi_state.description": "Pon _multiples copias_ con diferentes materiales en el mismo espacio de un bloque.", "tooltip.copycats.characteristics.multi_state.title": "Multi-estado", "tooltip.copycats.characteristics.pre_assembled.description": "Desmonta _partes individuales_ después de colocarlos.", "tooltip.copycats.characteristics.pre_assembled.title": "Preensamblado", diff --git a/common/src/main/resources/assets/copycats/lang/es_mx.json b/common/src/main/resources/assets/copycats/lang/es_mx.json index 03835f4b5..0d0e5ed7a 100644 --- a/common/src/main/resources/assets/copycats/lang/es_mx.json +++ b/common/src/main/resources/assets/copycats/lang/es_mx.json @@ -39,7 +39,7 @@ "item.copycats.copycat_box": "Caja Imitadora", "item.copycats.copycat_catwalk": "Puente Imitador", "itemGroup.copycats.functional": "Crear: Copycats+ | Funcional", - "itemGroup.copycats.main": "Crear: Copycats+ | Decorativo", + "itemGroup.copycats.main": "Crear: Copycats+", "tooltip.copycats.characteristics.copy_cat.description": "Clic derecho en un _gato_.", "tooltip.copycats.characteristics.copy_cat.title": "???", "tooltip.copycats.characteristics.copycat.description": "Clic derecho con el material para _asignar_ y _rotar_. Utiliza una llave inglesa para _remover el material_.", @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Funcional", "tooltip.copycats.characteristics.ghost.description": "_No colisiones_ con entidades.", "tooltip.copycats.characteristics.ghost.title": "Fantasma", + "tooltip.copycats.characteristics.multi_state.description": "Pon _multiples copias_ con diferentes materiales en el mismo espacio de un bloque.", "tooltip.copycats.characteristics.multi_state.title": "Multi-estado", "tooltip.copycats.characteristics.pre_assembled.description": "Desmonta _partes individuales_ después de colocarlos.", "tooltip.copycats.characteristics.pre_assembled.title": "Preensamblado", diff --git a/common/src/main/resources/assets/copycats/lang/hu_hu.json b/common/src/main/resources/assets/copycats/lang/hu_hu.json index 63a4b7d94..026239b6f 100644 --- a/common/src/main/resources/assets/copycats/lang/hu_hu.json +++ b/common/src/main/resources/assets/copycats/lang/hu_hu.json @@ -1,13 +1,13 @@ { - "block.copycats.copycat_base": "Imitátor-alap", - "block.copycats.copycat_beam": "Imitátor-oszlop", - "block.copycats.copycat_block": "Imitátor-blokk", + "block.copycats.copycat_base": "Kaméleon-alap", + "block.copycats.copycat_beam": "Kaméleon-oszlop", + "block.copycats.copycat_block": "Kaméleon-blokk", "block.copycats.copycat_board": "Imitátor-lap", - "block.copycats.copycat_byte": "Imitátor-darabka", - "block.copycats.copycat_cogwheel": "Imitátor-fogaskerék", - "block.copycats.copycat_door": "Imitátor-ajtó", - "block.copycats.copycat_fence": "Imitátor-kerítés", - "block.copycats.copycat_fence_gate": "Imitátor-kerítéskapu", + "block.copycats.copycat_byte": "Kaméleon-darabka", + "block.copycats.copycat_cogwheel": "Kaméleon-fogaskerék", + "block.copycats.copycat_door": "Kaméleon-ajtó", + "block.copycats.copycat_fence": "Kaméleon-kerítés", + "block.copycats.copycat_fence_gate": "Kaméleon-kerítéskapu", "block.copycats.copycat_fluid_pipe": "Imitátor-csőszakasz", "block.copycats.copycat_ghost_block": "Imitátor-fantomblokk", "block.copycats.copycat_glass_fluid_pipe": "Üveg imitátor-csőszakasz", @@ -51,6 +51,7 @@ "tooltip.copycats.characteristics.functional.title": "Használati", "tooltip.copycats.characteristics.ghost.description": "_Nincs_ entitásokkal való _ütközés_.", "tooltip.copycats.characteristics.ghost.title": "Fantom", + "tooltip.copycats.characteristics.multi_state.description": "_Több másolat_ elhelyezése különböző anyagokkal egy blokk helyén.", "tooltip.copycats.characteristics.multi_state.title": "Több állapotú", "tooltip.copycats.characteristics.pre_assembled.description": "_Egyedi darabok_ lebontása lehelyezés után.", "tooltip.copycats.characteristics.pre_assembled.title": "Előre összeállított", diff --git a/common/src/main/resources/assets/copycats/lang/nl_nl.json b/common/src/main/resources/assets/copycats/lang/nl_nl.json index 7f1fc2e0c..0950bf81f 100644 --- a/common/src/main/resources/assets/copycats/lang/nl_nl.json +++ b/common/src/main/resources/assets/copycats/lang/nl_nl.json @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Functioneel", "tooltip.copycats.characteristics.ghost.description": "_No collision_ met entiteiten.", "tooltip.copycats.characteristics.ghost.title": "Geest", + "tooltip.copycats.characteristics.multi_state.description": "Plaats _multiple copies_ met verschillende materialen in dezelfde blokruimte.", "tooltip.copycats.characteristics.multi_state.title": "Multi-staat", "tooltip.copycats.characteristics.pre_assembled.description": "_individual parts_ demonteren na plaatsing.", "tooltip.copycats.characteristics.pre_assembled.title": "Voorgemonteerd", diff --git a/common/src/main/resources/assets/copycats/lang/sk_sk.json b/common/src/main/resources/assets/copycats/lang/sk_sk.json index fe3b7759a..161939e90 100644 --- a/common/src/main/resources/assets/copycats/lang/sk_sk.json +++ b/common/src/main/resources/assets/copycats/lang/sk_sk.json @@ -50,6 +50,7 @@ "tooltip.copycats.characteristics.functional.title": "Funkcionálne", "tooltip.copycats.characteristics.ghost.description": "_Bez kolízie_ s entitami.", "tooltip.copycats.characteristics.ghost.title": "Falošný blok", + "tooltip.copycats.characteristics.multi_state.description": "Umiestniť viacero kópií s rôznymi materiálmi do rovnakého blokového priestoru.", "tooltip.copycats.characteristics.multi_state.title": "Viac stavový", "tooltip.copycats.characteristics.pre_assembled.description": "Demontuje _individuálne časti_ po ich umiestnení.", "tooltip.copycats.characteristics.pre_assembled.title": "Predmontované", diff --git a/common/src/main/resources/assets/copycats/lang/zh_cn.json b/common/src/main/resources/assets/copycats/lang/zh_cn.json index 358371da5..b753b3a75 100644 --- a/common/src/main/resources/assets/copycats/lang/zh_cn.json +++ b/common/src/main/resources/assets/copycats/lang/zh_cn.json @@ -52,7 +52,7 @@ "tooltip.copycats.characteristics.functional.title": "可交互", "tooltip.copycats.characteristics.ghost.description": "_不_与实体_碰撞_。", "tooltip.copycats.characteristics.ghost.title": "幽灵方块", - "tooltip.copycats.characteristics.multi_state.description": "可以在单个方块空间内放置_多个_不同材质的_伪装方块_。按住_%s_填充所有部分。", + "tooltip.copycats.characteristics.multi_state.description": "可以在单个方块空间内放置_多个_不同材质的_伪装方块_。", "tooltip.copycats.characteristics.multi_state.title": "复合状态", "tooltip.copycats.characteristics.pre_assembled.description": "放置后,拆除时仅拆除_单独的部分_。", "tooltip.copycats.characteristics.pre_assembled.title": "预装件", diff --git a/fabric/src/main/java/com/copycatsplus/copycats/fabric/CopycatsClientImpl.java b/fabric/src/main/java/com/copycatsplus/copycats/fabric/CopycatsClientImpl.java index 4ead918ce..42270ba25 100644 --- a/fabric/src/main/java/com/copycatsplus/copycats/fabric/CopycatsClientImpl.java +++ b/fabric/src/main/java/com/copycatsplus/copycats/fabric/CopycatsClientImpl.java @@ -8,6 +8,5 @@ public class CopycatsClientImpl implements ClientModInitializer { @Override public void onInitializeClient() { CopycatsClient.init(); - CCKeysImpl.register(); } } diff --git a/forge/src/main/java/com/copycatsplus/copycats/forge/CCKeysImpl.java b/forge/src/main/java/com/copycatsplus/copycats/forge/CCKeysImpl.java index 055140d21..8e3c4925e 100644 --- a/forge/src/main/java/com/copycatsplus/copycats/forge/CCKeysImpl.java +++ b/forge/src/main/java/com/copycatsplus/copycats/forge/CCKeysImpl.java @@ -11,6 +11,10 @@ @Mod.EventBusSubscriber(value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD) public class CCKeysImpl { + public static void register() { + // no-op: registration is handled by the event subscriber + } + @SubscribeEvent public static void register(RegisterKeyMappingsEvent event) { for (CCKeys key : CCKeys.values()) { diff --git a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsClientImpl.java b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsClientImpl.java index 896fa7393..6dfa453eb 100644 --- a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsClientImpl.java +++ b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsClientImpl.java @@ -4,7 +4,7 @@ public class CopycatsClientImpl { - public CopycatsClientImpl() { + public static void init() { CopycatsClient.init(); } } diff --git a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java index 50b6e54b6..0f497b291 100644 --- a/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java +++ b/forge/src/main/java/com/copycatsplus/copycats/forge/CopycatsImpl.java @@ -24,7 +24,7 @@ public CopycatsImpl() { CCCraftingConditions.register(); MinecraftForge.EVENT_BUS.addListener(this::serverStarting); - Platform.Environment.CLIENT.runIfCurrent(() -> CopycatsClient::init); + Platform.Environment.CLIENT.runIfCurrent(() -> CopycatsClientImpl::init); bus.addListener(EventPriority.LOWEST, CCDatagenImpl::gatherData); }