Skip to content

Commit 6f9fe94

Browse files
authored
Merge pull request #7
Add the Power Transfer Einstein-Rosen Bridge (PTERB)
2 parents d189704 + 0513006 commit 6f9fe94

File tree

30 files changed

+3464
-22
lines changed

30 files changed

+3464
-22
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ Current features:
66
* A Sterile Cleaning Maintenance Hatch
77
* An omni-breaker, that can break anything instantly
88
* 64A Energy Converters
9+
* The Power Transfer Einstein-Rosen Bridge (PTERB), a wireless version of the Active Transformer
10+
* Has an opt-in coolant system, where the PTERB requires coolant to be used, or it'll explode (or just stop if GTm is set to have harmless active transformers)
911

1012
All features can be enabled or disabled in the config.
1113

1214
While this mod was originally created for Monifactory, feel free to use it in any GregTech modpack you like!
1315

16+
All features (except for the sterile cleaning hatch and optional coolant for the PTERB) have default recipes.
17+
Feel free to change recipes in your own pack!
18+
1419
## License
1520

1621
All code is under LGPL3. Some parts were directly lifted from GregTech Modern.

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ dependencies {
113113
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
114114
runtimeOnly fg.deobf("dev.emi:emi-forge:${emi_version}+${minecraft_version}")
115115
runtimeOnly fg.deobf("curse.maven:jade-324717:5390389")
116+
compileOnly fg.deobf("curse.maven:jade-324717:5390389")
116117

117118
// GregTech and dependencies
118119
implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtceu_version}:slim") { transitive = false }

changelog.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# GregTech Modern Utilities version 1.0.3
1+
# GregTech Modern Utilities version 1.1.0
22

3-
HOTFIX - prevent server from trying to load client code
3+
Add the Power Transfer Einstein-Rosen Bridge, a wireless version of the Active Transformer.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ org.gradle.jvmargs=-Xmx1G
1111
mapping_version=2023.09.03-1.20.1
1212

1313
# Mod Properties
14-
mod_version=1.0.3
14+
mod_version=1.1.0
1515
maven_group=net.neganote.gtmutils
1616
archives_base_name=gtmutils
1717
mod_id=gtmutils

src/generated/resources/assets/gtmutils/lang/en_ud.json

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"block.gtmutils.max_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§XⱯWן§ɔ§",
88
"block.gtmutils.mv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛWq§",
99
"block.gtmutils.opv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛdOן§6§",
10+
"block.gtmutils.pterb_machine": "ǝbpıɹᗺ uǝsoᴚ-uıǝʇsuıƎ ɹǝɟsuɐɹ⟘ ɹǝʍoԀ",
1011
"block.gtmutils.sterile_cleaning_maintenance_hatch": "ɥɔʇɐH ǝɔuɐuǝʇuıɐW buıuɐǝןƆ ǝןıɹǝʇS",
1112
"block.gtmutils.uev_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛƎ∩ɐ§",
1213
"block.gtmutils.uhv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛH∩ㄣ§",
@@ -15,9 +16,27 @@
1516
"block.gtmutils.uv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§Λ∩Ɛ§",
1617
"block.gtmutils.uxv_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§ΛX∩ǝ§",
1718
"block.gtmutils.zpm_64a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ɹ§Ɐǝ§ㄣ9 ɹ§WԀZɔ§",
19+
"config.gtmutils.option.converters64aEnabled": "pǝןqɐuƎɐㄣ9sɹǝʇɹǝʌuoɔ",
20+
"config.gtmutils.option.features": "sǝɹnʇɐǝɟ",
21+
"config.gtmutils.option.omnibreakerEnabled": "pǝןqɐuƎɹǝʞɐǝɹqıuɯo",
22+
"config.gtmutils.option.omnibreakerEnergyCapacity": "ʎʇıɔɐdɐƆʎbɹǝuƎɹǝʞɐǝɹqıuɯo",
23+
"config.gtmutils.option.omnibreakerTier": "ɹǝı⟘ɹǝʞɐǝɹqıuɯo",
24+
"config.gtmutils.option.pterbCoolantBaseDrain": "uıɐɹᗡǝsɐᗺʇuɐןooƆqɹǝʇd",
25+
"config.gtmutils.option.pterbCoolantIOMultiplier": "ɹǝıןdıʇןnWOIʇuɐןooƆqɹǝʇd",
26+
"config.gtmutils.option.pterbEnabled": "pǝןqɐuƎqɹǝʇd",
27+
"config.gtmutils.option.sterileHatchEnabled": "pǝןqɐuƎɥɔʇɐHǝןıɹǝʇs",
28+
"config.jade.plugin_gtmutils.frequency_info": "oɟuI ʎɔuǝnbǝɹℲ ᗺᴚƎ⟘Ԁ",
29+
"gtmutils.gui.pterb.wireless_configurator.title": "ʎɔuǝnbǝɹɟ ssǝןǝɹıM",
30+
"gtmutils.multiblock.pterb_machine.coolant_usage": "puoɔǝs ɹǝd %s ɟo Ꞁ%s suıɐɹᗡɔ§",
31+
"gtmutils.pterb.current_frequency": "%s :ʎɔuǝnbǝɹɟ ʇuǝɹɹnƆ",
32+
"gtmutils.pterb_machine.invalid_frequency": "¡0 ʎɔuǝnbǝɹɟ uo ʞɹoʍ ʇou ןןıʍ sᗺᴚƎ⟘Ԁ",
1833
"item.gtmutils.omnibreaker": "ɹǝʞɐǝɹq-ıuɯO",
1934
"itemGroup.gtmutils.creative_tab": "sǝıʇıןıʇ∩ uɹǝpoW ɥɔǝ⟘bǝɹ⅁",
35+
"material.gtmutils.quantum_coolant": "ʇuɐןooƆ ɯnʇuɐnὉ",
2036
"tooltip.omnibreaker.can_break_anything": "¡⅁NIH⟘ʎNⱯ ǝuıɯ-ɐʇsuı uɐɔ ɹǝʞɐǝɹq-ıuɯO ǝɥ⟘",
2137
"tooltip.omnibreaker.charge_status": "∩Ǝ %s / ∩Ǝ %s :ʎbɹǝuƎ",
22-
"tooltip.omnibreaker.right_click_function": "¡ʞɔıןɔ-ʇɥbıɹ ɥʇıʍ sʞɔoןq ןɐnpıʌıpuı ʞɐǝɹᗺ"
38+
"tooltip.omnibreaker.right_click_function": "¡ʞɔıןɔ-ʇɥbıɹ ɥʇıʍ sʞɔoןq ןɐnpıʌıpuı ʞɐǝɹᗺ",
39+
"tooltip.pterb_machine.frequencies": "˙ɹǝɯɹoɟsuɐɹ⟘ ǝʌıʇɔⱯ ǝןbuıs ɐ ǝʞıן ʇɔɐ ʎɔuǝnbǝɹɟ ǝɯɐs ǝɥʇ ɥʇıʍ sᗺᴚƎ⟘Ԁ ןןⱯ",
40+
"tooltip.pterb_machine.purpose": ")ᗺᴚƎ⟘Ԁ( ɹǝɯɹoɟsuɐɹ⟘ ǝʌıʇɔⱯ ssǝןǝɹıM",
41+
"tooltip.pterb_machine.uses_coolant": "¡uoıʇɔunɟ oʇ %s suıɐɹᗡ"
2342
}

src/generated/resources/assets/gtmutils/lang/en_us.json

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"block.gtmutils.max_64a_energy_converter": "§c§lMAX§r 64§eA§r Energy Converter",
88
"block.gtmutils.mv_64a_energy_converter": "§bMV§r 64§eA§r Energy Converter",
99
"block.gtmutils.opv_64a_energy_converter": "§9§lOpV§r 64§eA§r Energy Converter",
10+
"block.gtmutils.pterb_machine": "Power Transfer Einstein-Rosen Bridge",
1011
"block.gtmutils.sterile_cleaning_maintenance_hatch": "Sterile Cleaning Maintenance Hatch",
1112
"block.gtmutils.uev_64a_energy_converter": "§aUEV§r 64§eA§r Energy Converter",
1213
"block.gtmutils.uhv_64a_energy_converter": "§4UHV§r 64§eA§r Energy Converter",
@@ -15,9 +16,27 @@
1516
"block.gtmutils.uv_64a_energy_converter": "§3UV§r 64§eA§r Energy Converter",
1617
"block.gtmutils.uxv_64a_energy_converter": "§eUXV§r 64§eA§r Energy Converter",
1718
"block.gtmutils.zpm_64a_energy_converter": "§cZPM§r 64§eA§r Energy Converter",
19+
"config.gtmutils.option.converters64aEnabled": "converters64aEnabled",
20+
"config.gtmutils.option.features": "features",
21+
"config.gtmutils.option.omnibreakerEnabled": "omnibreakerEnabled",
22+
"config.gtmutils.option.omnibreakerEnergyCapacity": "omnibreakerEnergyCapacity",
23+
"config.gtmutils.option.omnibreakerTier": "omnibreakerTier",
24+
"config.gtmutils.option.pterbCoolantBaseDrain": "pterbCoolantBaseDrain",
25+
"config.gtmutils.option.pterbCoolantIOMultiplier": "pterbCoolantIOMultiplier",
26+
"config.gtmutils.option.pterbEnabled": "pterbEnabled",
27+
"config.gtmutils.option.sterileHatchEnabled": "sterileHatchEnabled",
28+
"config.jade.plugin_gtmutils.frequency_info": "PTERB Frequency Info",
29+
"gtmutils.gui.pterb.wireless_configurator.title": "Wireless frequency",
30+
"gtmutils.multiblock.pterb_machine.coolant_usage": "§cDrains %sL of %s per second",
31+
"gtmutils.pterb.current_frequency": "Current frequency: %s",
32+
"gtmutils.pterb_machine.invalid_frequency": "PTERBs will not work on frequency 0!",
1833
"item.gtmutils.omnibreaker": "Omni-breaker",
1934
"itemGroup.gtmutils.creative_tab": "GregTech Modern Utilities",
35+
"material.gtmutils.quantum_coolant": "Quantum Coolant",
2036
"tooltip.omnibreaker.can_break_anything": "The Omni-breaker can insta-mine ANYTHING!",
2137
"tooltip.omnibreaker.charge_status": "Energy: %s EU / %s EU",
22-
"tooltip.omnibreaker.right_click_function": "Break individual blocks with right-click!"
38+
"tooltip.omnibreaker.right_click_function": "Break individual blocks with right-click!",
39+
"tooltip.pterb_machine.frequencies": "All PTERBs with the same frequency act like a single Active Transformer.",
40+
"tooltip.pterb_machine.purpose": "Wireless Active Transformer (PTERB)",
41+
"tooltip.pterb_machine.uses_coolant": "Drains %s to function!"
2342
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"values": [
3+
"gtmutils:quantum_coolant_bucket"
4+
]
5+
}

src/main/java/net/neganote/gtutilities/GregTechModernUtilities.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@
2424
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
2525
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
2626
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
27+
import net.neganote.gtutilities.client.renderer.UtilShaders;
2728
import net.neganote.gtutilities.common.item.UtilItems;
2829
import net.neganote.gtutilities.common.machine.UtilMachines;
30+
import net.neganote.gtutilities.common.materials.UtilMaterials;
2931
import net.neganote.gtutilities.config.UtilConfig;
30-
import net.neganote.gtutilities.data.UtilDatagen;
32+
import net.neganote.gtutilities.datagen.UtilDatagen;
3133

3234
import com.tterrag.registrate.util.entry.RegistryEntry;
3335
import org.apache.logging.log4j.LogManager;
@@ -49,6 +51,7 @@ public GregTechModernUtilities() {
4951
modEventBus.addListener(this::commonSetup);
5052
if (GTCEu.isClientSide()) {
5153
modEventBus.addListener(this::clientSetup);
54+
modEventBus.register(UtilShaders.class);
5255
}
5356
modEventBus.addListener(this::addMaterialRegistries);
5457
modEventBus.addListener(this::addMaterials);
@@ -127,7 +130,7 @@ private void addMaterialRegistries(MaterialRegistryEvent event) {
127130

128131
// As well as this.
129132
private void addMaterials(MaterialEvent event) {
130-
// CustomMaterials.init();
133+
UtilMaterials.register();
131134
}
132135

133136
// This is optional, though.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package net.neganote.gtutilities.client.renderer;
2+
3+
import net.minecraft.client.renderer.RenderStateShard;
4+
import net.minecraft.client.renderer.RenderStateShard.ShaderStateShard;
5+
import net.minecraft.client.renderer.RenderType;
6+
import net.minecraftforge.api.distmarker.Dist;
7+
import net.minecraftforge.api.distmarker.OnlyIn;
8+
9+
import com.mojang.blaze3d.platform.GlStateManager;
10+
import com.mojang.blaze3d.systems.RenderSystem;
11+
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
12+
import com.mojang.blaze3d.vertex.VertexFormat;
13+
14+
@OnlyIn(Dist.CLIENT)
15+
public class UtilRenderTypes {
16+
17+
public static final ShaderStateShard WORMHOLE_SHADER_SHARD = new ShaderStateShard(
18+
() -> UtilShaders.WORMHOLE_SHADER);
19+
20+
public static RenderType WORMHOLE = RenderType.create("wormhole", DefaultVertexFormat.POSITION,
21+
VertexFormat.Mode.QUADS, 131072, false, false,
22+
RenderType.CompositeState.builder()
23+
.setShaderState(WORMHOLE_SHADER_SHARD)
24+
// I would just use RenderStateShard.ADDITIVE_TRANSPARENCY, but that's protected for some reason
25+
// So instead I'm just copying it directly
26+
.setTransparencyState(new RenderStateShard.TransparencyStateShard("additive_transparency", () -> {
27+
RenderSystem.enableBlend();
28+
RenderSystem.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE);
29+
}, () -> {
30+
RenderSystem.disableBlend();
31+
RenderSystem.defaultBlendFunc();
32+
}))
33+
.createCompositeState(false));
34+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package net.neganote.gtutilities.client.renderer;
2+
3+
import net.minecraft.client.renderer.ShaderInstance;
4+
import net.minecraftforge.client.event.RegisterShadersEvent;
5+
import net.minecraftforge.eventbus.api.SubscribeEvent;
6+
import net.neganote.gtutilities.GregTechModernUtilities;
7+
8+
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
9+
10+
import java.io.IOException;
11+
12+
public class UtilShaders {
13+
14+
public static ShaderInstance WORMHOLE_SHADER;
15+
16+
@SubscribeEvent
17+
public static void shaderRegistry(RegisterShadersEvent event) {
18+
try {
19+
event.registerShader(new ShaderInstance(event.getResourceProvider(),
20+
GregTechModernUtilities.id("rendertype_wormhole"), DefaultVertexFormat.POSITION),
21+
(shaderInstance -> WORMHOLE_SHADER = shaderInstance));
22+
} catch (IOException e) {
23+
throw new RuntimeException(e);
24+
}
25+
}
26+
}

0 commit comments

Comments
 (0)