From 7fbf08ba54ce3397045a8acdd6b7be813009ee7b Mon Sep 17 00:00:00 2001 From: techno-sam Date: Sat, 8 Apr 2023 11:11:24 -0700 Subject: [PATCH] Track API? Fix up some placement issues --- .../content/logistics/trains/track/TrackPlacement.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java index 0595f869e..9ea76b131 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.function.Function; import com.jozufozu.flywheel.util.Color; import com.simibubi.create.AllSpecialTextures; @@ -500,8 +501,8 @@ public class TrackPlacement { return onto; } - private static BlockState copyProperties(BlockState from, BlockState onto, boolean keepFrom) { - return keepFrom ? copyProperties(from, onto) : from; + private static BlockState copyProperties(BlockState from, BlockState onto, Function keepFrom) { + return keepFrom.apply(from) ? copyProperties(from, onto) : from; } private static PlacementInfo placeTracks(Level level, PlacementInfo info, BlockState state1, BlockState state2, @@ -558,12 +559,12 @@ public class TrackPlacement { BlockState stateAtPos = level.getBlockState(targetPos1); BlockState onto = info.getMaterial().getTrackBlock().getDefaultState(); level.setBlock(targetPos1, ProperWaterloggedBlock.withWater(level, - copyProperties((stateAtPos.getBlock() == state1.getBlock() ? stateAtPos : state1), onto, AllTags.AllBlockTags.TRACKS.matches(stateAtPos)).setValue(TrackBlock.HAS_TE, true), + copyProperties((stateAtPos.getBlock() == state1.getBlock() ? stateAtPos : state1), onto, AllTags.AllBlockTags.TRACKS::matches).setValue(TrackBlock.HAS_TE, true), targetPos1), 3); stateAtPos = level.getBlockState(targetPos2); level.setBlock(targetPos2, ProperWaterloggedBlock.withWater(level, - copyProperties((stateAtPos.getBlock() == state2.getBlock() ? stateAtPos : state2), onto, AllTags.AllBlockTags.TRACKS.matches(stateAtPos)).setValue(TrackBlock.HAS_TE, true), + copyProperties((stateAtPos.getBlock() == state2.getBlock() ? stateAtPos : state2), onto, AllTags.AllBlockTags.TRACKS::matches).setValue(TrackBlock.HAS_TE, true), targetPos2), 3); }