Skip to content

Commit

Permalink
Iron tank 5x5x5
Browse files Browse the repository at this point in the history
  • Loading branch information
Edivad99 committed Sep 19, 2023
1 parent 8f5df92 commit 3d5b73e
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/main/java/mods/railcraft/integrations/patchouli/Patchouli.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package mods.railcraft.integrations.patchouli;

import mods.railcraft.Railcraft;
import mods.railcraft.tags.RailcraftTags;
import mods.railcraft.world.level.block.RailcraftBlocks;
import mods.railcraft.world.level.block.tank.IronTankGaugeBlock;
import mods.railcraft.world.level.block.tank.IronTankValveBlock;
import mods.railcraft.world.level.block.tank.IronTankWallBlock;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.level.block.Block;
import vazkii.patchouli.api.IStateMatcher;
import vazkii.patchouli.api.PatchouliAPI;
Expand Down Expand Up @@ -66,9 +71,46 @@ public static void setup() {
).setSymmetrical(true);
patchouliApi
.registerMultiblock(new ResourceLocation(Railcraft.ID, "steam_oven"), steamOven);

var ironTankWallBlock = validTankWallBlock(patchouliApi,
RailcraftBlocks.IRON_TANK_WALL.variantFor(DyeColor.WHITE).get());
var ironTankGaugeBlock = validTankGaugeBlock(patchouliApi,
RailcraftBlocks.IRON_TANK_GAUGE.variantFor(DyeColor.WHITE).get());
var ironTankValveBlock = validTankValveBlock(patchouliApi,
RailcraftBlocks.IRON_TANK_VALVE.variantFor(DyeColor.WHITE).get());
var tank = patchouliApi.makeMultiblock(new String[][]{
{"BBBBB", "BBBBB", "BBVBB", "BBBBB", "BBBBB"}, //Y:4
{"BGGGB", "GAAAG", "GAAAG", "GAAAG", "BGGGB"}, //Y:3
{"BGGGB", "GAAAG", "GAAAG", "GAAAG", "BGGGB"}, //Y:2
{"BGGGB", "GAAAG", "GAAAG", "GAAAG", "BGGGB"}, //Y:1
{"BBBBB", "BBBBB", "BBVBB", "BBBBB", "BB0BB"} //Y:0
},
'A', patchouliApi.airMatcher(),
'B', ironTankWallBlock,
'G', ironTankGaugeBlock,
'V', ironTankValveBlock,
'0', ironTankWallBlock
).setSymmetrical(true);
patchouliApi
.registerMultiblock(new ResourceLocation(Railcraft.ID, "iron_tank"), tank);
}

private static IStateMatcher validBlock(PatchouliAPI.IPatchouliAPI api, Block block) {
return api.predicateMatcher(block, state -> state.is(block));
}

private static IStateMatcher validTankWallBlock(PatchouliAPI.IPatchouliAPI api,
IronTankWallBlock block) {
return api.predicateMatcher(block, state -> state.is(RailcraftTags.Blocks.IRON_TANK_WALL));
}

private static IStateMatcher validTankGaugeBlock(PatchouliAPI.IPatchouliAPI api,
IronTankGaugeBlock block) {
return api.predicateMatcher(block, state -> state.is(RailcraftTags.Blocks.IRON_TANK_GAUGE));
}

private static IStateMatcher validTankValveBlock(PatchouliAPI.IPatchouliAPI api,
IronTankValveBlock block) {
return api.predicateMatcher(block, state -> state.is(RailcraftTags.Blocks.IRON_TANK_VALVE));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "Iron Tank",
"icon": "railcraft:white_iron_tank_valve",
"category": "railcraft:multiblock",
"pages": [
{
"type": "patchouli:text",
"text": "This is a test entry, but it should show up!"
},
{
"type": "patchouli:multiblock",
"name": "Iron Tank",
"multiblock_id": "railcraft:iron_tank",
"text": "AAA"
}
]
}

0 comments on commit 3d5b73e

Please sign in to comment.