Skip to content

Commit e7338da

Browse files
committed
added block item and block class for reactor chambers
1 parent f1db90a commit e7338da

File tree

6 files changed

+59
-1
lines changed

6 files changed

+59
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.gtreimagined.gt4r.block;
2+
3+
import muramasa.antimatter.block.AntimatterItemBlock;
4+
import muramasa.antimatter.machine.BlockMachine;
5+
import muramasa.antimatter.machine.Tier;
6+
import muramasa.antimatter.machine.types.Machine;
7+
import net.minecraft.core.BlockPos;
8+
import net.minecraft.core.Direction;
9+
import net.minecraft.world.level.LevelReader;
10+
import net.minecraft.world.level.block.state.BlockState;
11+
import org.gtreimagined.gt4r.data.Machines;
12+
13+
public class BlockReactorChamber extends BlockMachine {
14+
public BlockReactorChamber(Machine<?> type, Tier tier) {
15+
super(type, tier);
16+
}
17+
18+
@Override
19+
public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) {
20+
int reactors = 0;
21+
for (Direction dir : Direction.values()) {
22+
BlockState blockState = level.getBlockState(pos.relative(dir));
23+
if (blockState.getBlock() == Machines.NUCLEAR_REACTOR_CORE.getBlockState(Tier.NONE)){
24+
reactors++;
25+
}
26+
}
27+
return reactors == 1;
28+
}
29+
}

src/main/java/org/gtreimagined/gt4r/data/Machines.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import muramasa.antimatter.util.Utils;
1818
import net.minecraft.ChatFormatting;
1919
import net.minecraft.world.level.block.Block;
20+
import org.gtreimagined.gt4r.block.BlockReactorChamber;
21+
import org.gtreimagined.gt4r.items.ReactorChamberBlockItem;
2022
import org.gtreimagined.gt4r.reactor.tile.BlockEntityReactorCore;
2123
import org.gtreimagined.gtcore.data.GTCoreBlocks;
2224
import org.gtreimagined.gtcore.machine.DrumMachine;
@@ -138,7 +140,7 @@ public class Machines {
138140
public static MultiMachine LARGE_GAS_TURBINE = new MultiMachine(GT4RRef.ID, "large_gas_turbine").setMap(LARGE_GAS_FUELS).setTiers(IV).addFlags(GUI, FLUID, ITEM, EU, GENERATOR).setTile(BlockEntityLargeTurbine::new).custom(Textures.TURBINE);
139141
public static MultiMachine LARGE_HEAT_EXCHANGER = new MultiMachine(GT4RRef.ID, "large_heat_exchanger").setTiers(EV).addFlags(GUI, FLUID, EU).setTile(BlockEntityLargeHeatExchanger::new);
140142
public static BasicMultiMachine<?> NUCLEAR_REACTOR_CORE = new BasicMultiMachine<>(GT4RRef.ID, "nuclear_reactor_core").setTiers(NONE).addFlags(GUI, ITEM, FLUID, EU).baseTexture(Textures.BASE_HANDLER).setTile(BlockEntityReactorCore::new).noCovers().setClientTicking();
141-
public static BasicMachine REACTOR_CHAMBER = new BasicMachine(GT4RRef.ID, "reactor_chamber").setTiers(NONE).baseTexture(Textures.BASE_HANDLER).overlayTexture((t, s, t2, i) -> {
143+
public static BasicMachine REACTOR_CHAMBER = new BasicMachine(GT4RRef.ID, "reactor_chamber").setTiers(NONE).setBlock(BlockReactorChamber::new).setItemBlockClass(() -> BlockReactorChamber.class).setItemBlock(ReactorChamberBlockItem::new).baseTexture(Textures.BASE_HANDLER).overlayTexture((t, s, t2, i) -> {
142144
Texture side = new Texture(GT4RRef.ID, "block/machine/overlay/nuclear_reactor_core/top");
143145
Texture top = new Texture(GT4RRef.ID, "block/machine/empty");
144146
return new Texture[]{top, top, side, side, side, side};

src/main/java/org/gtreimagined/gt4r/datagen/GT4RBlockLootProvider.java

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import muramasa.antimatter.data.AntimatterMaterials;
66
import muramasa.antimatter.data.AntimatterStoneTypes;
77
import muramasa.antimatter.datagen.providers.AntimatterBlockLootProvider;
8+
import muramasa.antimatter.machine.Tier;
89
import muramasa.antimatter.mixin.BlockLootTablesAccessor;
910
import muramasa.antimatter.ore.BlockOre;
1011
import muramasa.antimatter.ore.BlockOreStone;
@@ -22,6 +23,7 @@
2223
import org.gtreimagined.gt4r.block.BlockCasing;
2324
import org.gtreimagined.gt4r.block.BlockFakeCasing;
2425
import org.gtreimagined.gt4r.block.BlockNonSolidMachine;
26+
import org.gtreimagined.gt4r.data.Machines;
2527

2628
import java.util.function.Function;
2729

@@ -40,6 +42,7 @@ protected void loot() {
4042
AntimatterAPI.all(BlockNonSolidMachine.class, providerDomain, this::add);
4143
AntimatterAPI.all(BlockCasing.class, providerDomain, this::add);
4244
AntimatterAPI.all(BlockFakeCasing.class, providerDomain, this::add);
45+
this.add(Machines.REACTOR_CHAMBER.getBlockState(Tier.NONE));
4346
if (!AntimatterAPI.isModLoaded("gt5r")){
4447
oreDrops();
4548
}

src/main/java/org/gtreimagined/gt4r/datagen/GT4RBlockTagProvider.java

+4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import muramasa.antimatter.data.AntimatterDefaultTools;
55
import muramasa.antimatter.data.AntimatterMaterials;
66
import muramasa.antimatter.datagen.providers.AntimatterBlockTagProvider;
7+
import muramasa.antimatter.machine.Tier;
8+
import muramasa.antimatter.machine.types.Machine;
79
import net.minecraft.tags.BlockTags;
810
import org.gtreimagined.gt4r.GT4RRef;
911
import org.gtreimagined.gt4r.block.BlockCasing;
1012
import org.gtreimagined.gt4r.block.BlockColoredWall;
1113
import org.gtreimagined.gt4r.block.BlockFakeCasing;
1214
import org.gtreimagined.gt4r.block.BlockNonSolidMachine;
1315
import org.gtreimagined.gt4r.block.BlockRedstoneMachine;
16+
import org.gtreimagined.gt4r.data.Machines;
1417

1518
import static org.gtreimagined.gt4r.data.GT4RBlocks.IRIDIUM_REINFORCED_STONE;
1619

@@ -35,6 +38,7 @@ public void processTags(String domain) {
3538
AntimatterAPI.all(BlockRedstoneMachine.class, GT4RRef.ID, cas -> {
3639
this.tag(AntimatterDefaultTools.WRENCH.getToolType()).add(cas);
3740
});
41+
this.tag(AntimatterDefaultTools.WRENCH.getToolType()).add(Machines.REACTOR_CHAMBER.getBlockState(Tier.NONE));
3842
AntimatterAPI.all(BlockColoredWall.class, GT4RRef.ID, cas -> {
3943
if (cas.getMaterial() == AntimatterMaterials.Wood){
4044
this.tag(AntimatterDefaultTools.AXE.getToolType()).add(cas);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.gtreimagined.gt4r.items;
2+
3+
import muramasa.antimatter.block.AntimatterItemBlock;
4+
import net.minecraft.world.InteractionResult;
5+
import net.minecraft.world.item.ItemStack;
6+
import net.minecraft.world.item.context.UseOnContext;
7+
import net.minecraft.world.level.block.Block;
8+
9+
public class ReactorChamberBlockItem extends AntimatterItemBlock {
10+
public ReactorChamberBlockItem(Block block) {
11+
super(block);
12+
}
13+
14+
@Override
15+
public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) {
16+
return useOn(context);
17+
}
18+
}

src/main/java/org/gtreimagined/gt4r/proxy/ClientHandler.java

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import muramasa.antimatter.AntimatterAPI;
44
import muramasa.antimatter.client.ModelUtils;
5+
import muramasa.antimatter.machine.Tier;
56
import muramasa.antimatter.proxy.IProxyHandler;
67
import net.minecraft.client.Minecraft;
78
import net.minecraft.client.renderer.RenderType;
@@ -34,6 +35,7 @@ public static void setup() {
3435
AntimatterAPI.all(BlockCasing.class, t -> ModelUtils.setRenderLayer(t, RenderType.cutout()));
3536
AntimatterAPI.all(BlockRedstoneMachine.class, b -> ModelUtils.setRenderLayer(b, RenderType.cutout()));
3637
AntimatterAPI.all(BlockColoredWall.class, b -> ModelUtils.setRenderLayer(b, RenderType.cutout()));
38+
ModelUtils.setRenderLayer(Machines.REACTOR_CHAMBER.getBlockState(Tier.NONE), RenderType.cutout());
3739
});
3840
copyProgrammerArtIfMissing();
3941
}

0 commit comments

Comments
 (0)