Skip to content

Commit 203033c

Browse files
committed
Merge remote-tracking branch 'upstream/dev' into dev
2 parents 184c845 + 9379601 commit 203033c

13 files changed

Lines changed: 704 additions & 2 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ org.gradle.logging.stacktrace = all
55

66
# Mod Information
77
# HIGHLY RECOMMEND complying with SemVer for mod_version: https://semver.org/
8-
mod_version = 0.9.2
8+
mod_version = 0.9.3
99
mod_version_type = release
1010
mod_package = su.terrafirmagreg
1111
mod_id = tfg
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"variants": {
3+
"facing=east": {
4+
"model": "tfg:block/machine/pastoral_engine",
5+
"y": 90
6+
},
7+
"facing=north": {
8+
"model": "tfg:block/machine/pastoral_engine"
9+
},
10+
"facing=south": {
11+
"model": "tfg:block/machine/pastoral_engine",
12+
"y": 180
13+
},
14+
"facing=west": {
15+
"model": "tfg:block/machine/pastoral_engine",
16+
"y": 270
17+
}
18+
}
19+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"parent": "minecraft:block/block",
3+
"loader": "gtceu:machine",
4+
"machine": "tfg:pastoral_engine",
5+
"texture_overrides": {
6+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel"
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_solid_steel",
14+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front",
15+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_emissive",
16+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top",
17+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_emissive"
18+
}
19+
}
20+
},
21+
"is_formed=false,recipe_logic_status=suspend": {
22+
"model": {
23+
"parent": "gtceu:block/machine/template/cube_all/sided",
24+
"textures": {
25+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
26+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front",
27+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_emissive",
28+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top",
29+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_emissive"
30+
}
31+
}
32+
},
33+
"is_formed=false,recipe_logic_status=waiting": {
34+
"model": {
35+
"parent": "gtceu:block/machine/template/cube_all/sided",
36+
"textures": {
37+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
38+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front_active",
39+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_active_emissive",
40+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top_active",
41+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_active_emissive"
42+
}
43+
}
44+
},
45+
"is_formed=false,recipe_logic_status=working": {
46+
"model": {
47+
"parent": "gtceu:block/machine/template/cube_all/sided",
48+
"textures": {
49+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
50+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front_active",
51+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_active_emissive",
52+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top_active",
53+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_active_emissive"
54+
}
55+
}
56+
},
57+
"is_formed=true,recipe_logic_status=idle": {
58+
"model": {
59+
"parent": "gtceu:block/machine/template/cube_all/sided",
60+
"textures": {
61+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
62+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front",
63+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_emissive",
64+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top",
65+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_emissive"
66+
}
67+
}
68+
},
69+
"is_formed=true,recipe_logic_status=suspend": {
70+
"model": {
71+
"parent": "gtceu:block/machine/template/cube_all/sided",
72+
"textures": {
73+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
74+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front",
75+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_emissive",
76+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top",
77+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_emissive"
78+
}
79+
}
80+
},
81+
"is_formed=true,recipe_logic_status=waiting": {
82+
"model": {
83+
"parent": "gtceu:block/machine/template/cube_all/sided",
84+
"textures": {
85+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
86+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front_active",
87+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_active_emissive",
88+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top_active",
89+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_active_emissive"
90+
}
91+
}
92+
},
93+
"is_formed=true,recipe_logic_status=working": {
94+
"model": {
95+
"parent": "gtceu:block/machine/template/cube_all/sided",
96+
"textures": {
97+
"all": "gtceu:block/casings/solid/machine_casing_solid_steel",
98+
"overlay_front": "tfg:block/machines/pisciculture_fishery/overlay_front_active",
99+
"overlay_front_emissive": "tfg:block/machines/pisciculture_fishery/overlay_front_active_emissive",
100+
"overlay_top": "tfg:block/machines/pisciculture_fishery/overlay_top_active",
101+
"overlay_top_emissive": "tfg:block/machines/pisciculture_fishery/overlay_top_active_emissive"
102+
}
103+
}
104+
}
105+
}
106+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "tfg:block/machine/pastoral_engine"
3+
}

src/main/java/su/terrafirmagreg/core/common/data/tfgt/TFGMultiMachines.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import su.terrafirmagreg.core.common.tfgt.machine.multiblock.steam.TFGLargeBoilerMachine;
9090
import su.terrafirmagreg.core.common.tfgt.machine.render.BouleRender;
9191
import su.terrafirmagreg.core.common.tfgt.machine.trait.GasWellRecipeLogic;
92+
import su.terrafirmagreg.core.common.tfgt.recipe.modifier.AnimalProductModifier;
9293

9394
@SuppressWarnings({ "unused", "SpellCheckingInspection" })
9495
public class TFGMultiMachines {
@@ -1235,5 +1236,46 @@ private static net.minecraft.world.level.block.state.BlockState orientedBlockSta
12351236
GTCEu.id("block/generators/naquadah_reactor_solid"))
12361237
.register();
12371238

1239+
public static final MultiblockMachineDefinition PASTORAL_ENGINE = REGISTRATE
1240+
.multiblock("pastoral_engine", PastoralEngineMachine::new)
1241+
.rotationState(RotationState.NON_Y_AXIS)
1242+
.allowFlip(false)
1243+
.allowExtendedFacing(false)
1244+
.recipeType(TFGTRecipeTypes.PASTORAL_ENGINE_RECIPES)
1245+
.recipeModifiers(AnimalProductModifier.INSTANCE)
1246+
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
1247+
.tooltips(
1248+
Component.translatable("tfg.tooltip.machine.pastoral_engine_1"),
1249+
Component.translatable("tfg.tooltip.machine.pastoral_engine_2"))
1250+
.workableCasingModel(
1251+
GTCEu.id("block/casings/solid/machine_casing_solid_steel"),
1252+
TFGCore.id("block/machines/pisciculture_fishery"))
1253+
.pattern(definition -> FactoryBlockPattern.start()
1254+
.aisle("BBBBBBBBB", "DDDDDDDDD", "AAAAAAAAA", "AAAAAAAAA")
1255+
.aisle("BFFFFFFFB", "DAAAAAAAD", "AAAAAAAAA", "AAAAAAAAA")
1256+
.aisle("BFFFFFFFB", "DAAAAAAAD", "AAAAAAAAA", "AAAAAAAAA")
1257+
.aisle("BFFFFFFFB", "DAAAAAAAD", "AAAAAAAAA", "AAAAAAAAA")
1258+
.aisle("BFFFBBBBB", "DAAACEEEC", "AAAACEEEC", "AAAACCCCC")
1259+
.aisle("BFFFBEEEB", "DAAAEHHGA", "AAAAEHHGA", "AAAACEEEC")
1260+
.aisle("BFFFBEEEB", "DAAAEGGGA", "AAAAEGSGA", "AAAACEEEC")
1261+
.aisle("BBBBBBBBB", "DDDDCAAAC", "AAAACAAAC", "AAAACCCCC")
1262+
.where('S', controller(blocks(definition.get())))
1263+
.where("A", Predicates.any())
1264+
.where("B", Predicates.blocks(GTBlocks.STEEL_HULL.get()))
1265+
.where("C", Predicates.blockTag(TagKey.create(Registries.BLOCK,
1266+
ResourceLocation.fromNamespaceAndPath("forge", "stone_bricks"))))
1267+
.where("D", Predicates.blockTag(TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath("forge", "fences/wooden")))
1268+
.or(Predicates.blockTag(TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath("forge", "fence_gates")))))
1269+
.where("E", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get()))
1270+
.where("F", Predicates.blockTag(TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath("tfc", "dirt")))
1271+
.or(Predicates.blockTag(TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath("tfc", "grass")))))
1272+
.where("G", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get())
1273+
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
1274+
.or(Predicates.autoAbilities(true, false, false))
1275+
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2)))
1276+
.where("H", Predicates.blocks(GTBlocks.CASING_STEEL_GEARBOX.get()))
1277+
.build())
1278+
.register();
1279+
12381280
// spotless:on
12391281
}

src/main/java/su/terrafirmagreg/core/common/data/tfgt/TFGRecipeConditions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ private TFGRecipeConditions() {
2222
public static RecipeConditionType<AverageRainfallCondition> CLIMATE_AVG_RAINFALL;
2323
public static RecipeConditionType<GravityCondition> GRAVITY;
2424

25+
public static RecipeConditionType<AnimalPresentCondition> ANIMAL_PRESENT;
26+
2527
public static void init() {
2628
OXYGENATED = register("oxygenated", OxygenatedCondition::new, OxygenatedCondition.CODEC);
2729
MONTHS = register("months", MonthCondition::new, MonthCondition.CODEC);
2830
SEASONS = register("seasons", SeasonCondition::new, SeasonCondition.CODEC);
2931
CLIMATE_AVG_TEMPERATURE = register("climate_avg_temperature", AverageTemperatureCondition::new, AverageTemperatureCondition.CODEC);
3032
CLIMATE_AVG_RAINFALL = register("climate_avg_rainfall", AverageRainfallCondition::new, AverageRainfallCondition.CODEC);
3133
GRAVITY = register("gravity", GravityCondition::new, GravityCondition.CODEC);
34+
ANIMAL_PRESENT = register("animal_present", AnimalPresentCondition::new, AnimalPresentCondition.CODEC);
3235
}
3336

3437
private static <T extends RecipeCondition<T>> RecipeConditionType<T> register(

src/main/java/su/terrafirmagreg/core/common/data/tfgt/TFGTRecipeTypes.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,4 +281,11 @@ public static void init() {
281281
.setMaxIOSize(1, 0, 1, 1)
282282
.setSound(GTSoundEntries.FURNACE)
283283
.setProgressBar(GuiTextures.PROGRESS_BAR_BOILER_FUEL.get(true), FillDirection.DOWN_TO_UP);
284+
285+
public static final GTRecipeType PASTORAL_ENGINE_RECIPES = GTRecipeTypes
286+
.register("pastoral_engine", GTRecipeTypes.MULTIBLOCK)
287+
.setEUIO(IO.IN)
288+
.setMaxIOSize(1, 1, 0, 1)
289+
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
290+
.setSound(GTSoundEntries.BATH);
284291
}

0 commit comments

Comments
 (0)