From a861a0d3d358fcd3cb331bdcda424029b9cfb3ba Mon Sep 17 00:00:00 2001 From: Ender Date: Tue, 11 Mar 2025 19:24:47 +0100 Subject: [PATCH] feat: fenix rails --- .../assets/railcraft/lang/en_us.json | 1 + .../data/RailcraftBlockTagsProvider.java | 3 ++- .../data/RailcraftLanguageProvider.java | 1 + .../models/RailcraftBlockModelProvider.java | 2 ++ .../data/recipes/RailcraftRecipeProvider.java | 12 ++++++++++ .../entity/vehicle/RollingStockImpl.java | 20 ++++++++++++----- .../railcraft/world/item/RailcraftItems.java | 3 +++ .../world/level/block/RailcraftBlocks.java | 21 +++++++++--------- .../level/block/track/FenixTrackBlock.java | 9 ++++++++ .../railcraft/textures/block/fenix_track.png | Bin 0 -> 102 bytes .../railcraft/textures/item/fenix_track.png | Bin 0 -> 102 bytes 11 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 src/main/java/mods/railcraft/world/level/block/track/FenixTrackBlock.java create mode 100644 src/main/resources/assets/railcraft/textures/block/fenix_track.png create mode 100644 src/main/resources/assets/railcraft/textures/item/fenix_track.png diff --git a/src/generated/resources/assets/railcraft/lang/en_us.json b/src/generated/resources/assets/railcraft/lang/en_us.json index e672b9fb6..2f22c8da5 100644 --- a/src/generated/resources/assets/railcraft/lang/en_us.json +++ b/src/generated/resources/assets/railcraft/lang/en_us.json @@ -151,6 +151,7 @@ "block.railcraft.electric_whistle_track": "Electric Whistle Track", "block.railcraft.electric_wye_track": "Electric Wye Track", "block.railcraft.elevator_track": "Elevator Track", + "block.railcraft.fenix_trail": "Fenix Trail", "block.railcraft.empty_detector": "Empty Cart Detector", "block.railcraft.etched_abyssal_stone": "Etched Abyssal Stone", "block.railcraft.etched_quarried_stone": "Etched Quarried Stone", diff --git a/src/main/java/mods/railcraft/data/RailcraftBlockTagsProvider.java b/src/main/java/mods/railcraft/data/RailcraftBlockTagsProvider.java index 7b25b2ea4..f2d3c8a9e 100644 --- a/src/main/java/mods/railcraft/data/RailcraftBlockTagsProvider.java +++ b/src/main/java/mods/railcraft/data/RailcraftBlockTagsProvider.java @@ -133,7 +133,8 @@ protected void addTags() { RailcraftBlocks.IRON_WHISTLE_TRACK.get(), RailcraftBlocks.IRON_LOCOMOTIVE_TRACK.get(), RailcraftBlocks.IRON_THROTTLE_TRACK.get(), - RailcraftBlocks.IRON_ROUTING_TRACK.get()); + RailcraftBlocks.IRON_ROUTING_TRACK.get(), + RailcraftBlocks.FENIX_TRACK.get()); this.tag(RailcraftTags.Blocks.REINFORCED_TRACK) .add(RailcraftBlocks.REINFORCED_TRACK.get(), RailcraftBlocks.REINFORCED_LOCKING_TRACK.get(), diff --git a/src/main/java/mods/railcraft/data/RailcraftLanguageProvider.java b/src/main/java/mods/railcraft/data/RailcraftLanguageProvider.java index b1559ed92..032e469a1 100644 --- a/src/main/java/mods/railcraft/data/RailcraftLanguageProvider.java +++ b/src/main/java/mods/railcraft/data/RailcraftLanguageProvider.java @@ -854,6 +854,7 @@ private void trackTranslations() { this.addBlock(RailcraftBlocks.IRON_LOCOMOTIVE_TRACK, "Iron Locomotive Track"); this.addBlock(RailcraftBlocks.IRON_THROTTLE_TRACK, "Iron Throttle Track"); this.addBlock(RailcraftBlocks.IRON_ROUTING_TRACK, "Iron Routing Track"); + this.addBlock(RailcraftBlocks.FENIX_TRACK, "Fenix Track"); this.addBlock(RailcraftBlocks.ELEVATOR_TRACK, "Elevator Track"); } diff --git a/src/main/java/mods/railcraft/data/models/RailcraftBlockModelProvider.java b/src/main/java/mods/railcraft/data/models/RailcraftBlockModelProvider.java index 9da945c4c..c12a80520 100644 --- a/src/main/java/mods/railcraft/data/models/RailcraftBlockModelProvider.java +++ b/src/main/java/mods/railcraft/data/models/RailcraftBlockModelProvider.java @@ -560,6 +560,8 @@ protected void registerStatesAndModels() { RailcraftBlocks.HIGH_SPEED_ELECTRIC_WHISTLE_TRACK.get(), RailcraftBlocks.HIGH_SPEED_ELECTRIC_LOCOMOTIVE_TRACK.get(), RailcraftBlocks.HIGH_SPEED_ELECTRIC_THROTTLE_TRACK.get()); + + this.simpleBlock(RailcraftBlocks.FENIX_TRACK.get()); } private void createStrengthenedGlass(Block block) { diff --git a/src/main/java/mods/railcraft/data/recipes/RailcraftRecipeProvider.java b/src/main/java/mods/railcraft/data/recipes/RailcraftRecipeProvider.java index 5c0974119..fedd03d43 100644 --- a/src/main/java/mods/railcraft/data/recipes/RailcraftRecipeProvider.java +++ b/src/main/java/mods/railcraft/data/recipes/RailcraftRecipeProvider.java @@ -428,6 +428,12 @@ private void buildTracks(Consumer consumer) { RailcraftItems.HIGH_SPEED_RAIL.get(), RailcraftItems.STONE_RAILBED.get()); + ShapelessRecipeBuilder.shapeless(RailcraftItems.FENIX_TRACK.get()) + .requires(Tags.Items.TOOLS_AXES) + .requires(Items.RAIL) + .unlockedBy(getHasName(Items.RAIL), has(Tags.Items.TOOLS_AXES)) + .save(consumer); + ShapedRecipeBuilder .shaped(RailcraftItems.HIGH_SPEED_ELECTRIC_WYE_TRACK.get(), 16) .pattern("aba") @@ -472,6 +478,12 @@ private static void tracks(Consumer finishedRecipe, Item result, .save(finishedRecipe); } + private static void tracks(Consumer finishedRecipe, Item result, + Ingredient kit, Item baseTrack) { + + + } + private static void wyeTracks(Consumer finishedRecipe, Item result, Item rail, Item railBed) { ShapedRecipeBuilder.shaped(result, 16) diff --git a/src/main/java/mods/railcraft/world/entity/vehicle/RollingStockImpl.java b/src/main/java/mods/railcraft/world/entity/vehicle/RollingStockImpl.java index ba85e5076..ab0fbc921 100644 --- a/src/main/java/mods/railcraft/world/entity/vehicle/RollingStockImpl.java +++ b/src/main/java/mods/railcraft/world/entity/vehicle/RollingStockImpl.java @@ -348,10 +348,15 @@ public boolean isHighSpeed() { @Override public void checkHighSpeed(BlockPos blockPos) { var currentMotion = this.minecart.getDeltaMovement(); - if (this.highSpeed) { - HighSpeedTrackUtil.checkSafetyAndExplode(this.level(), blockPos, this.minecart); - return; - } + + /* Start Endxxr patch + + //if (this.highSpeed) { + // HighSpeedTrackUtil.checkSafetyAndExplode(this.level(), blockPos, this.minecart); + // return; + //} + + End Endxxr patch */ if (!HighSpeedTrackUtil.isTrackSafeForHighSpeed(this.level(), blockPos, this.minecart)) { this.limitSpeed(); @@ -511,10 +516,15 @@ public void tick() { if (this.highSpeed) { if (MinecartUtil.cartVelocityIsLessThan(this.entity(), EXPLOSION_SPEED_THRESHOLD)) { this.highSpeed = false; - } else if (this.launchState == LaunchState.LANDED) { + } + /* Start Endxxr's patch + else if (this.launchState == LaunchState.LANDED) { HighSpeedTrackUtil.checkSafetyAndExplode(this.level(), this.minecart.blockPosition(), this.entity()); } + + End Endxxr's patch*/ + } // Fix flip diff --git a/src/main/java/mods/railcraft/world/item/RailcraftItems.java b/src/main/java/mods/railcraft/world/item/RailcraftItems.java index c3e77a1c2..8206f614f 100644 --- a/src/main/java/mods/railcraft/world/item/RailcraftItems.java +++ b/src/main/java/mods/railcraft/world/item/RailcraftItems.java @@ -688,6 +688,9 @@ public static Collection> entries() { public static final RegistryObject HIGH_SPEED_TRACK = blockItem("high_speed_track", RailcraftBlocks.HIGH_SPEED_TRACK); + public static final RegistryObject FENIX_TRACK = + blockItem("fenix_track", RailcraftBlocks.FENIX_TRACK); + public static final RegistryObject HIGH_SPEED_TRANSITION_TRACK = blockItem("high_speed_transition_track", RailcraftBlocks.HIGH_SPEED_TRANSITION_TRACK); diff --git a/src/main/java/mods/railcraft/world/level/block/RailcraftBlocks.java b/src/main/java/mods/railcraft/world/level/block/RailcraftBlocks.java index 6cb14f7b2..57c97c93e 100644 --- a/src/main/java/mods/railcraft/world/level/block/RailcraftBlocks.java +++ b/src/main/java/mods/railcraft/world/level/block/RailcraftBlocks.java @@ -59,16 +59,7 @@ import mods.railcraft.world.level.block.tank.SteelTankGaugeBlock; import mods.railcraft.world.level.block.tank.SteelTankValveBlock; import mods.railcraft.world.level.block.tank.SteelTankWallBlock; -import mods.railcraft.world.level.block.track.AbandonedTrackBlock; -import mods.railcraft.world.level.block.track.ElectricTrackBlock; -import mods.railcraft.world.level.block.track.ElevatorTrackBlock; -import mods.railcraft.world.level.block.track.ForceTrackBlock; -import mods.railcraft.world.level.block.track.HighSpeedElectricTrackBlock; -import mods.railcraft.world.level.block.track.HighSpeedTrackBlock; -import mods.railcraft.world.level.block.track.ReinforcedTrackBlock; -import mods.railcraft.world.level.block.track.StrapIronTrackBlock; -import mods.railcraft.world.level.block.track.TrackConstants; -import mods.railcraft.world.level.block.track.TrackTypes; +import mods.railcraft.world.level.block.track.*; import mods.railcraft.world.level.block.track.actuator.SwitchTrackActuatorBlock; import mods.railcraft.world.level.block.track.actuator.SwitchTrackLeverBlock; import mods.railcraft.world.level.block.track.actuator.SwitchTrackMotorBlock; @@ -937,6 +928,15 @@ private static PostBlock buildPost() { .strength(TrackConstants.HARDNESS, TrackConstants.RESISTANCE) .sound(SoundType.METAL))); + // Start Endxxr Patch + public static final RegistryObject FENIX_TRACK = + deferredRegister.register("fenix_track", + () -> new FenixTrackBlock(BlockBehaviour.Properties.of(Material.METAL) + .noCollission() + .strength(TrackConstants.HARDNESS, TrackConstants.RESISTANCE) + .sound(SoundType.METAL))); + // End + public static final RegistryObject HIGH_SPEED_TRANSITION_TRACK = deferredRegister.register("high_speed_transition_track", () -> new TransitionTrackBlock(TrackTypes.HIGH_SPEED, @@ -1379,6 +1379,7 @@ private static PostBlock buildPost() { .strength(1.05F) .sound(SoundType.METAL))); + public static final RegistryObject FIRESTONE_ORE = deferredRegister.register("firestone_ore", () -> new FirestoneBlock(BlockBehaviour.Properties.of(Material.STONE) diff --git a/src/main/java/mods/railcraft/world/level/block/track/FenixTrackBlock.java b/src/main/java/mods/railcraft/world/level/block/track/FenixTrackBlock.java new file mode 100644 index 000000000..8731f61c7 --- /dev/null +++ b/src/main/java/mods/railcraft/world/level/block/track/FenixTrackBlock.java @@ -0,0 +1,9 @@ +package mods.railcraft.world.level.block.track; + +public class FenixTrackBlock extends TrackBlock { + + public FenixTrackBlock(Properties properties) { + super(TrackTypes.IRON, properties); + } + +} diff --git a/src/main/resources/assets/railcraft/textures/block/fenix_track.png b/src/main/resources/assets/railcraft/textures/block/fenix_track.png new file mode 100644 index 0000000000000000000000000000000000000000..158f7b9ad902cf4d89d458548aa06e1de933a0be GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`x}GkMAr`&K4UMYa)Bc=4apK2$ z2Zn|#4Ob3@7z$o;;OLPu$U3lsvH1`K8yg$Las{sB!ZsC2phgByS3j3^P6