Skip to content

Commit b89b52a

Browse files
committed
Added the Basic Fluid Drilling Rig
1 parent fc1e13f commit b89b52a

10 files changed

Lines changed: 550 additions & 1 deletion

File tree

gradle.properties

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

1212
# Mod Properties
13-
mod_version=2.3.2
13+
mod_version=2.4.0
1414
maven_group=com.illuminatijoe.refactorycore
1515
archives_base_name=refactorycore
1616
mod_id=refactorycore
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
{
2+
"variants": {
3+
"facing=down,upwards_facing=east": {
4+
"gtceu:z": 90,
5+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
6+
"x": 90
7+
},
8+
"facing=down,upwards_facing=north": {
9+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
10+
"x": 90
11+
},
12+
"facing=down,upwards_facing=south": {
13+
"gtceu:z": 180,
14+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
15+
"x": 90
16+
},
17+
"facing=down,upwards_facing=west": {
18+
"gtceu:z": 270,
19+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
20+
"x": 90
21+
},
22+
"facing=east,upwards_facing=east": {
23+
"gtceu:z": 270,
24+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
25+
"y": 90
26+
},
27+
"facing=east,upwards_facing=north": {
28+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
29+
"y": 90
30+
},
31+
"facing=east,upwards_facing=south": {
32+
"gtceu:z": 180,
33+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
34+
"y": 90
35+
},
36+
"facing=east,upwards_facing=west": {
37+
"gtceu:z": 90,
38+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
39+
"y": 90
40+
},
41+
"facing=north,upwards_facing=east": {
42+
"gtceu:z": 270,
43+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig"
44+
},
45+
"facing=north,upwards_facing=north": {
46+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig"
47+
},
48+
"facing=north,upwards_facing=south": {
49+
"gtceu:z": 180,
50+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig"
51+
},
52+
"facing=north,upwards_facing=west": {
53+
"gtceu:z": 90,
54+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig"
55+
},
56+
"facing=south,upwards_facing=east": {
57+
"gtceu:z": 270,
58+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
59+
"y": 180
60+
},
61+
"facing=south,upwards_facing=north": {
62+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
63+
"y": 180
64+
},
65+
"facing=south,upwards_facing=south": {
66+
"gtceu:z": 180,
67+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
68+
"y": 180
69+
},
70+
"facing=south,upwards_facing=west": {
71+
"gtceu:z": 90,
72+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
73+
"y": 180
74+
},
75+
"facing=up,upwards_facing=east": {
76+
"gtceu:z": 90,
77+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
78+
"x": 270
79+
},
80+
"facing=up,upwards_facing=north": {
81+
"gtceu:z": 180,
82+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
83+
"x": 270
84+
},
85+
"facing=up,upwards_facing=south": {
86+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
87+
"x": 270
88+
},
89+
"facing=up,upwards_facing=west": {
90+
"gtceu:z": 270,
91+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
92+
"x": 270
93+
},
94+
"facing=west,upwards_facing=east": {
95+
"gtceu:z": 270,
96+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
97+
"y": 270
98+
},
99+
"facing=west,upwards_facing=north": {
100+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
101+
"y": 270
102+
},
103+
"facing=west,upwards_facing=south": {
104+
"gtceu:z": 180,
105+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
106+
"y": 270
107+
},
108+
"facing=west,upwards_facing=west": {
109+
"gtceu:z": 90,
110+
"model": "refactorycore:block/machine/lv_basic_fluid_drilling_rig",
111+
"y": 270
112+
}
113+
}
114+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"block.refactorycore.luv_hydrator": "ɹ§II ɹoʇɐɹpʎH ǝʇıןƎp§",
4242
"block.refactorycore.luv_lp_input_hatch": "ɥɔʇɐH ʇnduI ԀꞀ ΛnꞀp§",
4343
"block.refactorycore.luv_lp_output_hatch": "ɥɔʇɐH ʇndʇnO ԀꞀ ΛnꞀp§",
44+
"block.refactorycore.lv_basic_fluid_drilling_rig": "ɹ§ bıᴚ buıןןıɹᗡ pınןℲ ɔısɐᗺ",
4445
"block.refactorycore.lv_hydrator": "ɹ§ ɹoʇɐɹpʎH ɔısɐᗺ",
4546
"block.refactorycore.max_fake_nuclear_reactor": "ɹ§ ɹoʇɔɐǝᴚ ɹɐǝןɔnN ǝʞɐℲ XⱯWן§ɔ§",
4647
"block.refactorycore.max_lp_input_hatch": "ɥɔʇɐH ʇnduI ԀꞀ XⱯWן§ɔ§",

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"block.refactorycore.luv_hydrator": "§dElite Hydrator II§r",
4242
"block.refactorycore.luv_lp_input_hatch": "§dLuV LP Input Hatch",
4343
"block.refactorycore.luv_lp_output_hatch": "§dLuV LP Output Hatch",
44+
"block.refactorycore.lv_basic_fluid_drilling_rig": "Basic Fluid Drilling Rig §r",
4445
"block.refactorycore.lv_hydrator": "Basic Hydrator §r",
4546
"block.refactorycore.max_fake_nuclear_reactor": "§c§lMAX Fake Nuclear Reactor §r",
4647
"block.refactorycore.max_lp_input_hatch": "§c§lMAX LP Input Hatch",
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{
2+
"parent": "minecraft:block/block",
3+
"loader": "gtceu:machine",
4+
"machine": "refactorycore:lv_basic_fluid_drilling_rig",
5+
"texture_overrides": {
6+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks"
7+
},
8+
"variants": {
9+
"is_formed=false,recipe_logic_status=idle": {
10+
"model": {
11+
"parent": "gtceu:block/machine/template/cube_all/sided",
12+
"textures": {
13+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
14+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front",
15+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_emissive"
16+
}
17+
}
18+
},
19+
"is_formed=false,recipe_logic_status=suspend": {
20+
"model": {
21+
"parent": "gtceu:block/machine/template/cube_all/sided",
22+
"textures": {
23+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
24+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_paused",
25+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_paused_emissive"
26+
}
27+
}
28+
},
29+
"is_formed=false,recipe_logic_status=waiting": {
30+
"model": {
31+
"parent": "gtceu:block/machine/template/cube_all/sided",
32+
"textures": {
33+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
34+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active",
35+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active_emissive"
36+
}
37+
}
38+
},
39+
"is_formed=false,recipe_logic_status=working": {
40+
"model": {
41+
"parent": "gtceu:block/machine/template/cube_all/sided",
42+
"textures": {
43+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
44+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active",
45+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active_emissive"
46+
}
47+
}
48+
},
49+
"is_formed=true,recipe_logic_status=idle": {
50+
"model": {
51+
"parent": "gtceu:block/machine/template/cube_all/sided",
52+
"textures": {
53+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
54+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front",
55+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_emissive"
56+
}
57+
}
58+
},
59+
"is_formed=true,recipe_logic_status=suspend": {
60+
"model": {
61+
"parent": "gtceu:block/machine/template/cube_all/sided",
62+
"textures": {
63+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
64+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_paused",
65+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_paused_emissive"
66+
}
67+
}
68+
},
69+
"is_formed=true,recipe_logic_status=waiting": {
70+
"model": {
71+
"parent": "gtceu:block/machine/template/cube_all/sided",
72+
"textures": {
73+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
74+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active",
75+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active_emissive"
76+
}
77+
}
78+
},
79+
"is_formed=true,recipe_logic_status=working": {
80+
"model": {
81+
"parent": "gtceu:block/machine/template/cube_all/sided",
82+
"textures": {
83+
"all": "gtceu:block/casings/solid/machine_casing_bronze_plated_bricks",
84+
"overlay_front": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active",
85+
"overlay_front_emissive": "gtceu:block/multiblock/fluid_drilling_rig/overlay_front_active_emissive"
86+
}
87+
}
88+
}
89+
}
90+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "refactorycore:block/machine/lv_basic_fluid_drilling_rig"
3+
}

src/main/java/com/illuminatijoe/refactorycore/machines/multiblock/MultiblockInit.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.illuminatijoe.refactorycore.machines.multiblock;
22

33
import com.illuminatijoe.refactorycore.machines.multiblock.electric.AuraAltar;
4+
import com.illuminatijoe.refactorycore.machines.multiblock.electric.BasicFluidDrillingRig;
45
import com.illuminatijoe.refactorycore.machines.multiblock.electric.Bloodforge;
56
import com.illuminatijoe.refactorycore.machines.multiblock.generator.ManaBurners;
67
import com.illuminatijoe.refactorycore.machines.multiblock.nuclear.NuclearReactor;
@@ -15,6 +16,7 @@ public static void init() {
1516
ManaBurners.init();
1617
NuclearReactor.init();
1718
CoolingTower.init();
19+
BasicFluidDrillingRig.init();
1820

1921
// dummy machines
2022
FakeNuclearReactor.init();
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package com.illuminatijoe.refactorycore.machines.multiblock.electric;
2+
3+
import com.illuminatijoe.refactorycore.machines.trait.BasicFluidDrillLogic;
4+
5+
import com.gregtechceu.gtceu.GTCEu;
6+
import com.gregtechceu.gtceu.api.GTValues;
7+
import com.gregtechceu.gtceu.api.capability.IEnergyContainer;
8+
import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability;
9+
import com.gregtechceu.gtceu.api.capability.recipe.IO;
10+
import com.gregtechceu.gtceu.api.data.tag.TagPrefix;
11+
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
12+
import com.gregtechceu.gtceu.api.machine.feature.ITieredMachine;
13+
import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine;
14+
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
15+
import com.gregtechceu.gtceu.api.misc.EnergyContainerList;
16+
import com.gregtechceu.gtceu.common.data.GTBlocks;
17+
import com.gregtechceu.gtceu.common.data.GTMaterialBlocks;
18+
import com.gregtechceu.gtceu.common.data.GTMaterials;
19+
import com.gregtechceu.gtceu.utils.FormattingUtil;
20+
import com.gregtechceu.gtceu.utils.GTUtil;
21+
22+
import net.minecraft.ChatFormatting;
23+
import net.minecraft.MethodsReturnNonnullByDefault;
24+
import net.minecraft.network.chat.Component;
25+
import net.minecraft.network.chat.HoverEvent;
26+
import net.minecraft.network.chat.Style;
27+
import net.minecraft.resources.ResourceLocation;
28+
import net.minecraft.world.level.block.Block;
29+
import net.minecraft.world.level.material.Fluid;
30+
31+
import lombok.Getter;
32+
import org.jetbrains.annotations.NotNull;
33+
34+
import java.util.List;
35+
36+
import javax.annotation.ParametersAreNonnullByDefault;
37+
38+
@ParametersAreNonnullByDefault
39+
@MethodsReturnNonnullByDefault
40+
public class BasicFluidDrillMachine extends WorkableElectricMultiblockMachine implements ITieredMachine {
41+
42+
@Getter
43+
public final int tier;
44+
45+
public BasicFluidDrillMachine(IMachineBlockEntity holder, int tier) {
46+
super(holder);
47+
this.tier = tier;
48+
}
49+
50+
@Override
51+
protected RecipeLogic createRecipeLogic(Object... args) {
52+
return new BasicFluidDrillLogic(this);
53+
}
54+
55+
@NotNull
56+
@Override
57+
public BasicFluidDrillLogic getRecipeLogic() {
58+
return (BasicFluidDrillLogic) super.getRecipeLogic();
59+
}
60+
61+
public int getEnergyTier() {
62+
var energyContainer = this.getCapabilitiesFlat(IO.IN, EURecipeCapability.CAP);
63+
if (energyContainer == null) return this.tier;
64+
var energyCont = new EnergyContainerList(energyContainer.stream().filter(IEnergyContainer.class::isInstance)
65+
.map(IEnergyContainer.class::cast).toList());
66+
67+
return Math.min(this.tier + 1, Math.max(this.tier, GTUtil.getFloorTierByVoltage(energyCont.getInputVoltage())));
68+
}
69+
70+
@Override
71+
public void addDisplayText(List<Component> textList) {
72+
if (isFormed()) {
73+
int energyContainer = getEnergyTier();
74+
long maxVoltage = GTValues.V[energyContainer];
75+
String voltageName = GTValues.VNF[energyContainer];
76+
textList.add(Component.translatable("gtceu.multiblock.max_energy_per_tick", maxVoltage, voltageName));
77+
78+
if (getRecipeLogic().getVeinFluid() != null) {
79+
// Fluid name
80+
Fluid drilledFluid = getRecipeLogic().getVeinFluid();
81+
Component fluidInfo = drilledFluid.getFluidType().getDescription().copy()
82+
.withStyle(ChatFormatting.GREEN);
83+
textList.add(Component.translatable("gtceu.multiblock.fluid_rig.drilled_fluid", fluidInfo)
84+
.withStyle(ChatFormatting.GRAY));
85+
86+
// Fluid amount
87+
Component amountInfo = Component.literal(FormattingUtil.formatNumbers(
88+
getRecipeLogic().getFluidToProduce() * 20L / BasicFluidDrillLogic.MAX_PROGRESS) +
89+
" mB/s").withStyle(ChatFormatting.BLUE);
90+
textList.add(Component.translatable("gtceu.multiblock.fluid_rig.fluid_amount", amountInfo)
91+
.withStyle(ChatFormatting.GRAY));
92+
} else {
93+
Component noFluid = Component.translatable("gtceu.multiblock.fluid_rig.no_fluid_in_area")
94+
.withStyle(ChatFormatting.RED);
95+
textList.add(Component.translatable("gtceu.multiblock.fluid_rig.drilled_fluid", noFluid)
96+
.withStyle(ChatFormatting.GRAY));
97+
}
98+
} else {
99+
Component tooltip = Component.translatable("gtceu.multiblock.invalid_structure.tooltip")
100+
.withStyle(ChatFormatting.GRAY);
101+
textList.add(Component.translatable("gtceu.multiblock.invalid_structure")
102+
.withStyle(Style.EMPTY.withColor(ChatFormatting.RED)
103+
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))));
104+
}
105+
}
106+
107+
public static int getDepletionChance() {
108+
return 1;
109+
}
110+
111+
public static float getRigMultiplier() {
112+
return 0.5f;
113+
}
114+
115+
public static Block getCasingState() {
116+
return GTBlocks.CASING_BRONZE_BRICKS.get();
117+
}
118+
119+
@SuppressWarnings("DataFlowIssue")
120+
public static Block getFrameState() {
121+
return GTMaterialBlocks.MATERIAL_BLOCKS.get(TagPrefix.frameGt, GTMaterials.Steel).get();
122+
}
123+
124+
public static ResourceLocation getBaseTexture() {
125+
return GTCEu.id("block/casings/solid/machine_casing_bronze_plated_bricks");
126+
}
127+
}

0 commit comments

Comments
 (0)