Skip to content

Commit 71ffee4

Browse files
committed
Add fluid tunnel, fix item tunnel indicator, update create/flywheel ver
1 parent d9c2684 commit 71ffee4

File tree

6 files changed

+90
-7
lines changed

6 files changed

+90
-7
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ dependencies {
289289
runtimeOnly(fg.deobf("curse.maven:SuperMartijn642-454372:3544563"))
290290
runtimeOnly(fg.deobf("curse.maven:trashcans-394535:3544028"))
291291
runtimeOnly(fg.deobf("curse.maven:pipez-443900:3569514"))
292-
runtimeOnly(fg.deobf("curse.maven:flywheel-486392:3556768"))
293-
runtimeOnly(fg.deobf("curse.maven:create-328085:3556823"))
292+
runtimeOnly(fg.deobf("curse.maven:flywheel-486392:3687357"))
293+
runtimeOnly(fg.deobf("curse.maven:create-328085:3687358"))
294294
runtimeOnly(fg.deobf("curse.maven:refinedpipes-370696:3570151"))
295295
runtimeOnly(fg.deobf("curse.maven:prettypipes-376737:3573145"))
296296
runtimeOnly(fg.deobf("curse.maven:refinedstorage-243076:3623324"))

src/datagen/java/dev/compactmods/machines/datagen/RecipeGenerator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ protected void buildCraftingRecipes(Consumer<FinishedRecipe> consumer) {
5353
.unlockedBy("observer", RecipeProvider.has(Items.OBSERVER))
5454
.save(consumer);
5555

56+
TunnelRecipeBuilder.tunnel(Tunnels.FLUID_TUNNEL_DEF.get(), 2)
57+
.requires(Items.BUCKET)
58+
.requires(Items.ENDER_PEARL)
59+
.requires(Items.REDSTONE)
60+
.requires(Items.OBSERVER)
61+
.unlockedBy("observer", RecipeProvider.has(Items.OBSERVER))
62+
.save(consumer);
63+
5664
addMachineRecipes(consumer);
5765
}
5866

src/main/java/dev/compactmods/machines/core/Tunnels.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import dev.compactmods.machines.tunnel.TunnelItem;
55
import dev.compactmods.machines.tunnel.TunnelWallBlock;
66
import dev.compactmods.machines.tunnel.TunnelWallEntity;
7+
import dev.compactmods.machines.tunnel.definitions.FluidTunnel;
78
import dev.compactmods.machines.tunnel.definitions.UnknownTunnel;
89
import dev.compactmods.machines.tunnel.definitions.ItemTunnel;
910
import net.minecraft.resources.ResourceLocation;
@@ -63,6 +64,8 @@ public static TunnelDefinition getDefinition(ResourceLocation id) {
6364
// ================================================================================================================
6465
public static final RegistryObject<TunnelDefinition> ITEM_TUNNEL_DEF = DEFINITIONS.register("item", ItemTunnel::new);
6566

67+
public static final RegistryObject<TunnelDefinition> FLUID_TUNNEL_DEF = DEFINITIONS.register("fluid", FluidTunnel::new);
68+
6669
// ================================================================================================================
6770
// TUNNEL BLOCKS / TILES
6871
// ================================================================================================================

src/main/resources/assets/compactmachines/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"item.compactmachines.machine_tiny": "Compact Machine (Tiny)",
5353
"item.compactmachines.personal_shrinking_device": "Personal Shrinking Device",
5454
"item.compactmachines.tunnels.item": "Item Tunnel",
55+
"item.compactmachines.tunnels.fluid": "Fluid Tunnel",
5556
"item.compactmachines.tunnels.redstone_in": "Redstone Tunnel (In)",
5657
"item.compactmachines.tunnels.redstone_out": "Redstone Tunnel (Out)",
5758
"itemGroup.compactmachines": "Compact Machines",
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package dev.compactmods.machines.tunnel.definitions;
2+
3+
import com.google.common.collect.ImmutableSet;
4+
import dev.compactmods.machines.api.tunnels.TunnelDefinition;
5+
import dev.compactmods.machines.api.tunnels.capability.CapabilityTunnel;
6+
import dev.compactmods.machines.api.tunnels.lifecycle.TunnelInstance;
7+
import net.minecraft.core.BlockPos;
8+
import net.minecraft.core.Direction;
9+
import net.minecraft.nbt.CompoundTag;
10+
import net.minecraft.util.FastColor;
11+
import net.minecraftforge.common.capabilities.Capability;
12+
import net.minecraftforge.common.util.INBTSerializable;
13+
import net.minecraftforge.common.util.LazyOptional;
14+
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
15+
import net.minecraftforge.fluids.capability.IFluidHandler;
16+
import net.minecraftforge.fluids.capability.templates.FluidTank;
17+
import net.minecraftforge.registries.ForgeRegistryEntry;
18+
19+
import javax.annotation.Nonnull;
20+
21+
public class FluidTunnel extends ForgeRegistryEntry<TunnelDefinition>
22+
implements TunnelDefinition, CapabilityTunnel<FluidTunnel.Instance> {
23+
@Override
24+
public int ringColor() {
25+
return FastColor.ARGB32.color(255, 0, 138, 224);
26+
}
27+
28+
@Override
29+
public ImmutableSet<Capability<?>> getSupportedCapabilities() {
30+
return ImmutableSet.of(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
31+
}
32+
33+
@Override
34+
public <CapType> LazyOptional<CapType> getCapability(Capability<CapType> type, FluidTunnel.Instance instance) {
35+
if(type == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
36+
return instance.lazy().cast();
37+
38+
return LazyOptional.empty();
39+
}
40+
41+
@Override
42+
public FluidTunnel.Instance newInstance(BlockPos position, Direction side) {
43+
return new Instance(4000);
44+
}
45+
46+
public class Instance implements TunnelInstance, INBTSerializable<CompoundTag> {
47+
48+
private final FluidTank handler;
49+
private final LazyOptional<IFluidHandler> lazy;
50+
51+
public Instance(int size) {
52+
this.handler = new FluidTank(size);
53+
this.lazy = LazyOptional.of(this::getHandler);
54+
}
55+
56+
@Nonnull
57+
private IFluidHandler getHandler() {
58+
return this.handler;
59+
}
60+
61+
public LazyOptional<IFluidHandler> lazy() {
62+
return this.lazy;
63+
}
64+
65+
@Override
66+
public CompoundTag serializeNBT() {
67+
CompoundTag data = new CompoundTag();
68+
return handler.writeToNBT(data);
69+
}
70+
71+
@Override
72+
public void deserializeNBT(CompoundTag nbt) {
73+
handler.readFromNBT(nbt);
74+
}
75+
}
76+
}

src/tunnels/java/dev/compactmods/machines/tunnel/definitions/ItemTunnel.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@ public int ringColor() {
3030
return 0xffcd8f24;
3131
}
3232

33-
@Override
34-
public int indicatorColor() {
35-
return IMPORT_COLOR;
36-
}
37-
3833
/**
3934
* Handle initialization tasks for the tunnel's data here.
4035
*/

0 commit comments

Comments
 (0)