From 11b311c1c6c8730d1ee55f418f04370610ef27ac Mon Sep 17 00:00:00 2001 From: liach Date: Tue, 19 Feb 2019 01:35:01 -0800 Subject: [PATCH] Add railcraft compat for the two tracks. Runs properly but advanced detector track kit item has texture issues Signed-off-by: liach --- build.gradle | 7 ++ src/main/java/vswe/stevescarts/SCConfig.java | 4 + .../blocks/BlockRailAdvDetector.java | 2 + .../vswe/stevescarts/blocks/ModBlocks.java | 26 ++++++- .../compat/railcraft/CompatRailcraft.java | 71 ++++++++++++++++++ .../compat/railcraft/RailcraftHook.java | 60 +++++++++++++++ .../compat/railcraft/kit/KitAdvDetector.java | 44 +++++++++++ .../compat/railcraft/kit/KitJunction.java | 40 ++++++++++ .../entitys/CartDataSerializers.java | 4 +- .../entitys/EntityMinecartModular.java | 4 +- .../stevescarts/helpers/DetectorType.java | 2 +- .../outfitted/kit/advanced_detector.json | 22 ++++++ .../outfitted/unified/abandoned/junction.json | 16 ++++ .../outfitted/unified/electric/junction.json | 16 ++++ .../unified/high_speed/junction.json | 16 ++++ .../unified/high_speed_electric/junction.json | 16 ++++ .../outfitted/unified/iron/junction.json | 16 ++++ .../unified/reinforced/junction.json | 16 ++++ .../unified/strap_iron/junction.json | 16 ++++ .../item/track_kits/advaced_detector.json | 6 ++ .../models/item/track_kits/junction.json | 6 ++ .../outfitted/kit/advanced_detector_0.png | Bin 0 -> 301 bytes .../items/track_kits/advanced_detector.png | Bin 0 -> 473 bytes .../textures/items/track_kits/junction.png | Bin 0 -> 468 bytes 24 files changed, 404 insertions(+), 6 deletions(-) create mode 100644 src/main/java/vswe/stevescarts/compat/railcraft/CompatRailcraft.java create mode 100644 src/main/java/vswe/stevescarts/compat/railcraft/RailcraftHook.java create mode 100644 src/main/java/vswe/stevescarts/compat/railcraft/kit/KitAdvDetector.java create mode 100644 src/main/java/vswe/stevescarts/compat/railcraft/kit/KitJunction.java create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/kit/advanced_detector.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/abandoned/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/electric/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed_electric/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/iron/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/reinforced/junction.json create mode 100644 src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/strap_iron/junction.json create mode 100644 src/main/resources/assets/stevescarts/models/item/track_kits/advaced_detector.json create mode 100644 src/main/resources/assets/stevescarts/models/item/track_kits/junction.json create mode 100644 src/main/resources/assets/stevescarts/textures/blocks/tracks/outfitted/kit/advanced_detector_0.png create mode 100644 src/main/resources/assets/stevescarts/textures/items/track_kits/advanced_detector.png create mode 100644 src/main/resources/assets/stevescarts/textures/items/track_kits/junction.png diff --git a/build.gradle b/build.gradle index 52065404..a0b937cd 100644 --- a/build.gradle +++ b/build.gradle @@ -50,6 +50,9 @@ repositories { name = "Modmuss50" url = "http://maven.modmuss50.me/" } + flatDir { + dirs 'lib' + } } @@ -67,6 +70,10 @@ dependencies { transitive = false } deobfCompile 'net.industrial-craft:industrialcraft-2:2.8.104-ex112' + + // lib folder + compile name: "railcraft-12.0.0-beta-4-api" + provided name: "railcraft-12.0.0-beta-4-api" } processResources{ diff --git a/src/main/java/vswe/stevescarts/SCConfig.java b/src/main/java/vswe/stevescarts/SCConfig.java index d36cfbf7..8a123561 100644 --- a/src/main/java/vswe/stevescarts/SCConfig.java +++ b/src/main/java/vswe/stevescarts/SCConfig.java @@ -32,6 +32,7 @@ public class SCConfig { public static boolean enableEaster = true; public static boolean enableHalloween = true; public static boolean enableChristmas = true; + public static boolean railcraftCompat = true; private static Multimap ironTierRepair; private static Multimap diamondTierRepair; @@ -83,6 +84,9 @@ public void sync() { enableEaster = config.getBoolean("Enable Easter", "Events", true, "If the easter event can occur"); enableHalloween = config.getBoolean("Enable Halloween", "Events", true, "If the halloween event can occur"); enableChristmas = config.getBoolean("Enable Christmas", "Events", true, "If the christmas event can occur"); + + railcraftCompat = config.getBoolean("Enable Railcraft Compatibility", "Compatibility", true, "If Railcraft compatibility content would be " + + "added when Railcraft is present"); save(); } diff --git a/src/main/java/vswe/stevescarts/blocks/BlockRailAdvDetector.java b/src/main/java/vswe/stevescarts/blocks/BlockRailAdvDetector.java index 9160c639..b2bfbcde 100644 --- a/src/main/java/vswe/stevescarts/blocks/BlockRailAdvDetector.java +++ b/src/main/java/vswe/stevescarts/blocks/BlockRailAdvDetector.java @@ -194,4 +194,6 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En public void refreshState(World world, BlockPos pos, IBlockState state, boolean flag) { new BlockRailBase.Rail(world, pos, state).place(flag, false); } + + } diff --git a/src/main/java/vswe/stevescarts/blocks/ModBlocks.java b/src/main/java/vswe/stevescarts/blocks/ModBlocks.java index aa5db212..8d9c478b 100644 --- a/src/main/java/vswe/stevescarts/blocks/ModBlocks.java +++ b/src/main/java/vswe/stevescarts/blocks/ModBlocks.java @@ -1,6 +1,7 @@ package vswe.stevescarts.blocks; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.StateMap; import net.minecraft.item.Item; @@ -8,6 +9,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.event.RegistryEvent; @@ -20,6 +23,7 @@ import vswe.stevescarts.Constants; import vswe.stevescarts.StevesCarts; import vswe.stevescarts.blocks.tileentities.*; +import vswe.stevescarts.compat.railcraft.RailcraftHook; import java.util.ArrayList; import java.util.List; @@ -34,8 +38,22 @@ public enum ModBlocks { MODULE_TOGGLER("BlockActivator", BlockActivator.class, TileEntityActivator.class, "activator"), DETECTOR_UNIT("BlockDetector", BlockDetector.class, TileEntityDetector.class, "detector"), UPGRADE("upgrade", BlockUpgrade.class, TileEntityUpgrade.class, "upgrade"), - JUNCTION("BlockJunction", BlockRailJunction.class), - ADVANCED_DETECTOR("BlockAdvDetector", BlockRailAdvDetector.class), + JUNCTION("BlockJunction", BlockRailJunction.class) { + @Override + public boolean isAt(World world, BlockPos pos, IBlockState state) { + if (super.isAt(world, pos, state)) + return true; + return RailcraftHook.getInstance().isJunction(world, pos, state); + } + }, + ADVANCED_DETECTOR("BlockAdvDetector", BlockRailAdvDetector.class) { + @Override + public boolean isAt(World world, BlockPos pos, IBlockState state) { + if (super.isAt(world, pos, state)) + return true; + return RailcraftHook.getInstance().isAdvDetector(world, pos, state); + } + }, STORAGE("BlockMetalStorage", BlockMetalStorage.class); public static final List ITEM_BLOCKS = new ArrayList<>(); @@ -132,6 +150,10 @@ public Block getBlock() { return block; } + public boolean isAt(World world, BlockPos pos, IBlockState state) { + return state.getBlock() == block; + } + public interface ISubtypeItemBlockModelDefinition { /** * Returns the amount of subtypes diff --git a/src/main/java/vswe/stevescarts/compat/railcraft/CompatRailcraft.java b/src/main/java/vswe/stevescarts/compat/railcraft/CompatRailcraft.java new file mode 100644 index 00000000..c5219f05 --- /dev/null +++ b/src/main/java/vswe/stevescarts/compat/railcraft/CompatRailcraft.java @@ -0,0 +1,71 @@ +package vswe.stevescarts.compat.railcraft; + +import mods.railcraft.api.core.IRailcraftModule; +import mods.railcraft.api.core.RailcraftModule; +import mods.railcraft.api.tracks.TrackRegistry; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.crafting.CraftingHelper; +import net.minecraftforge.fml.common.registry.ForgeRegistries; +import net.minecraftforge.fml.common.registry.GameRegistry; +import vswe.stevescarts.Constants; +import vswe.stevescarts.SCConfig; +import vswe.stevescarts.blocks.BlockRailAdvDetector; +import vswe.stevescarts.blocks.BlockRailJunction; +import vswe.stevescarts.blocks.ModBlocks; +import vswe.stevescarts.compat.railcraft.kit.KitAdvDetector; +import vswe.stevescarts.compat.railcraft.kit.KitJunction; + +@RailcraftModule(value = Constants.MOD_ID + ":railcraft_compat", description = "Steves Carts Reborn Railcraft compatibility") +public class CompatRailcraft implements IRailcraftModule { + + public static final String MOD_ID = "railcraft"; + private static final ModuleEventHandler DISABLED = new ModuleEventHandler() { + }; + + @Override + public void checkPrerequisites() { + } + + @Override + public ModuleEventHandler getModuleEventHandler(boolean enabled) { + return !SCConfig.railcraftCompat ? DISABLED : new ModuleEventHandler() { + @Override + public void construction() { + RailcraftHook.init(); + } + + @Override + public void preInit() { + TrackRegistry.TRACK_KIT.register(KitAdvDetector.KIT); + TrackRegistry.TRACK_KIT.register(KitJunction.KIT); + } + + @Override + public void init() { + KitAdvDetector.setAdvDetector((BlockRailAdvDetector) ModBlocks.ADVANCED_DETECTOR.getBlock()); + Item partsItem = ForgeRegistries.ITEMS.getValue(new ResourceLocation(MOD_ID, "track_parts")); + Ingredient parts = CraftingHelper.getIngredient(partsItem == null ? "ingotIron" : new ItemStack(partsItem)); + Ingredient plank = CraftingHelper.getIngredient("plankWood"); + Ingredient redstone = CraftingHelper.getIngredient("dustRedstone"); + Ingredient stonePlate = CraftingHelper.getIngredient(Blocks.STONE_PRESSURE_PLATE); + + ItemStack advDetectorKit = KitAdvDetector.KIT.getTrackKitItem(); + GameRegistry.addShapelessRecipe(new ResourceLocation(Constants.MOD_ID, "advanced_detector_track_kit"), null, advDetectorKit, parts, + plank, redstone, stonePlate, stonePlate); + + ItemStack junctionKit = KitJunction.KIT.getTrackKitItem(); + GameRegistry.addShapelessRecipe(new ResourceLocation(Constants.MOD_ID, "junction_track_kit"), null, junctionKit, parts, plank, + redstone, redstone, redstone); + } + + @Override + public void postInit() { + + } + }; + } +} diff --git a/src/main/java/vswe/stevescarts/compat/railcraft/RailcraftHook.java b/src/main/java/vswe/stevescarts/compat/railcraft/RailcraftHook.java new file mode 100644 index 00000000..09ae8a5c --- /dev/null +++ b/src/main/java/vswe/stevescarts/compat/railcraft/RailcraftHook.java @@ -0,0 +1,60 @@ +package vswe.stevescarts.compat.railcraft; + +import mods.railcraft.api.tracks.IOutfittedTrackTile; +import mods.railcraft.api.tracks.TrackToolsAPI; +import net.minecraft.block.state.IBlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import vswe.stevescarts.compat.railcraft.kit.KitAdvDetector; + +public class RailcraftHook { + + private static RailcraftHook instance = new RailcraftHook(); + + public static RailcraftHook getInstance() { + return instance; + } + + static void init() { + instance = new Exist(); + } + + RailcraftHook() { + } + + public boolean isAdvDetector(World world, BlockPos pos, IBlockState state) { + return false; + } + + public boolean isJunction(World world, BlockPos pos, IBlockState state) { + return false; + } + + static final class Exist extends RailcraftHook { + + @Override + public boolean isAdvDetector(World world, BlockPos pos, IBlockState state) { + if (state.getBlock() != TrackToolsAPI.blockTrackOutfitted) { + return false; + } + TileEntity te = world.getTileEntity(pos); + if (!(te instanceof IOutfittedTrackTile)) { + return false; + } + return ((IOutfittedTrackTile) te).getTrackKitInstance().getTrackKit() == KitAdvDetector.KIT; + } + + @Override + public boolean isJunction(World world, BlockPos pos, IBlockState state) { + if (state.getBlock() != TrackToolsAPI.blockTrackOutfitted) { + return false; + } + TileEntity te = world.getTileEntity(pos); + if (!(te instanceof IOutfittedTrackTile)) { + return false; + } + return ((IOutfittedTrackTile) te).getTrackKitInstance().getTrackKit() == KitAdvDetector.KIT; + } + } +} diff --git a/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitAdvDetector.java b/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitAdvDetector.java new file mode 100644 index 00000000..bf2d78fb --- /dev/null +++ b/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitAdvDetector.java @@ -0,0 +1,44 @@ +package vswe.stevescarts.compat.railcraft.kit; + +import mods.railcraft.api.tracks.TrackKit; +import mods.railcraft.api.tracks.TrackKitInstance; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import vswe.stevescarts.Constants; +import vswe.stevescarts.blocks.BlockRailAdvDetector; + +public class KitAdvDetector extends TrackKitInstance { + + public static final TrackKit KIT = new TrackKit.Builder(new ResourceLocation(Constants.MOD_ID, "advanced_detector"), KitAdvDetector.class) + .setAllowedOnSlopes(false) + .setRenderStates(1) + .build(); + private static BlockRailAdvDetector block; + + @Override + public TrackKit getTrackKit() { + return KIT; + } + + public static void setAdvDetector(BlockRailAdvDetector detector) { + block = detector; + } + + public KitAdvDetector() { + } + + @Override + public void onMinecartPass(EntityMinecart cart) { + block.onMinecartPass(theWorldAsserted(), cart, getPos()); + } + + // TODO canConnectRedstone not accomplishable + + + @Override public boolean blockActivated(EntityPlayer player, EnumHand hand) { + return block.onBlockActivated(theWorldAsserted(), getPos(), theWorldAsserted().getBlockState(getPos()), player, hand, EnumFacing.UP, 0, 0, 0); + } +} diff --git a/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitJunction.java b/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitJunction.java new file mode 100644 index 00000000..8c9e5cdd --- /dev/null +++ b/src/main/java/vswe/stevescarts/compat/railcraft/kit/KitJunction.java @@ -0,0 +1,40 @@ +package vswe.stevescarts.compat.railcraft.kit; + +import mods.railcraft.api.tracks.TrackKit; +import mods.railcraft.api.tracks.TrackKitInstance; +import net.minecraft.block.BlockRailBase; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.util.ResourceLocation; +import vswe.stevescarts.Constants; +import vswe.stevescarts.blocks.BlockRailJunction; +import vswe.stevescarts.entitys.EntityMinecartModular; + +public class KitJunction extends TrackKitInstance { + + public static final TrackKit KIT = new TrackKit.Builder(new ResourceLocation(Constants.MOD_ID, "junction"), KitJunction.class) + .setAllowedOnSlopes(false) + .setRenderer(TrackKit.Renderer.UNIFIED) + .setRenderStates(6) //TODO + .build(); + + @Override + public TrackKit getTrackKit() { + return KIT; + } + + public KitJunction() { + } + + @Override + public BlockRailBase.EnumRailDirection getRailDirection(IBlockState state, EntityMinecart cart) { + if (cart instanceof EntityMinecartModular) { + final EntityMinecartModular modularCart = (EntityMinecartModular) cart; + BlockRailBase.EnumRailDirection direction = modularCart.getRailDirection(getPos()); + if (direction != null) { + return direction; + } + } + return super.getRailDirection(state, cart); + } +} diff --git a/src/main/java/vswe/stevescarts/entitys/CartDataSerializers.java b/src/main/java/vswe/stevescarts/entitys/CartDataSerializers.java index 08f5cf72..04a0dbe3 100644 --- a/src/main/java/vswe/stevescarts/entitys/CartDataSerializers.java +++ b/src/main/java/vswe/stevescarts/entitys/CartDataSerializers.java @@ -5,6 +5,8 @@ import net.minecraft.network.datasync.DataSerializer; import net.minecraft.network.datasync.DataSerializers; +import java.util.Arrays; + public class CartDataSerializers { public static void init() { @@ -29,7 +31,7 @@ public DataParameter createKey(int id) { @Override public int[] copyValue(int[] p_192717_1_) { - return p_192717_1_; + return p_192717_1_.clone(); } }; } diff --git a/src/main/java/vswe/stevescarts/entitys/EntityMinecartModular.java b/src/main/java/vswe/stevescarts/entitys/EntityMinecartModular.java index 33a07739..69a9bc38 100644 --- a/src/main/java/vswe/stevescarts/entitys/EntityMinecartModular.java +++ b/src/main/java/vswe/stevescarts/entitys/EntityMinecartModular.java @@ -670,10 +670,10 @@ public void moveMinecartOnRail(BlockPos pos) { EnumRailDirection railDirection = ((BlockRailBase) blockState.getBlock()).getRailDirection(world, pos, blockState, this); cornerFlip = ((railDirection == EnumRailDirection.SOUTH_EAST || railDirection == EnumRailDirection.SOUTH_WEST) && motionX < 0.0) || ((railDirection == EnumRailDirection.NORTH_EAST || railDirection == EnumRailDirection.NORTH_WEST) && motionX > 0.0); - if (blockState.getBlock() != ModBlocks.ADVANCED_DETECTOR.getBlock() && isDisabled()) { + if (ModBlocks.ADVANCED_DETECTOR.isAt(world, pos, blockState) && isDisabled()) { releaseCart(); } - boolean canBeDisabled = blockState.getBlock() == ModBlocks.ADVANCED_DETECTOR.getBlock() + boolean canBeDisabled = ModBlocks.ADVANCED_DETECTOR.isAt(world, pos, blockState) && (stateBelow.getBlock() != ModBlocks.DETECTOR_UNIT.getBlock() || !DetectorType.getTypeFromSate(stateBelow).canInteractWithCart() || DetectorType.getTypeFromSate(stateBelow).shouldStopCart()); final boolean forceUnDisable = wasDisabled && disabledPos != null && disabledPos.equals(pos); if (!forceUnDisable && wasDisabled) { diff --git a/src/main/java/vswe/stevescarts/helpers/DetectorType.java b/src/main/java/vswe/stevescarts/helpers/DetectorType.java index c03af674..9eba355a 100644 --- a/src/main/java/vswe/stevescarts/helpers/DetectorType.java +++ b/src/main/java/vswe/stevescarts/helpers/DetectorType.java @@ -37,7 +37,7 @@ public void deactivate(TileEntityDetector detector) { private void update(TileEntityDetector detector, boolean flag) { BlockPos posUp = detector.getPos().up(); IBlockState stateUp = detector.getWorld().getBlockState(posUp); - if (stateUp.getBlock() == ModBlocks.ADVANCED_DETECTOR.getBlock()) { + if (ModBlocks.ADVANCED_DETECTOR.isAt(detector.getWorld(), posUp, stateUp)) { ((BlockRailAdvDetector) ModBlocks.ADVANCED_DETECTOR.getBlock()).refreshState(detector.getWorld(), posUp, stateUp, flag); } } diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/kit/advanced_detector.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/kit/advanced_detector.json new file mode 100644 index 00000000..a0fae28a --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/kit/advanced_detector.json @@ -0,0 +1,22 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "stevescarts:blocks/tracks/outfitted/kit/advanced_detector_0"} + }, + "variants": { + "state": { + "0": { + "textures": {"rail": "stevescarts:blocks/tracks/outfitted/kit/advanced_detector_0"} + } + }, + "shape": { + "north_south": { + "model": "rail_flat" + }, + "east_west": { + "model": "rail_flat", "y": 90 + } + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/abandoned/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/abandoned/junction.json new file mode 100644 index 00000000..c08bc25d --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/abandoned/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/abandoned/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/electric/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/electric/junction.json new file mode 100644 index 00000000..3bc76d58 --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/electric/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/electric/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed/junction.json new file mode 100644 index 00000000..cc8217cb --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/high_speed/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed_electric/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed_electric/junction.json new file mode 100644 index 00000000..b402d62c --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/high_speed_electric/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/high_speed_electric/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/iron/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/iron/junction.json new file mode 100644 index 00000000..3d2a08ad --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/iron/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/iron/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/reinforced/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/reinforced/junction.json new file mode 100644 index 00000000..eef1041c --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/reinforced/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/reinforced/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/strap_iron/junction.json b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/strap_iron/junction.json new file mode 100644 index 00000000..e7d2a147 --- /dev/null +++ b/src/main/resources/assets/stevescarts/blockstates/tracks/outfitted/unified/strap_iron/junction.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "rail_flat", + "textures": {"rail": "railcraft:blocks/tracks/outfitted/unified/strap_iron/junction_0"} + }, + "variants": { + "state": { + "0": {} + }, + "shape": { + "north_south": {}, + "east_west": {} + } + } +} diff --git a/src/main/resources/assets/stevescarts/models/item/track_kits/advaced_detector.json b/src/main/resources/assets/stevescarts/models/item/track_kits/advaced_detector.json new file mode 100644 index 00000000..5baa8eab --- /dev/null +++ b/src/main/resources/assets/stevescarts/models/item/track_kits/advaced_detector.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "stevescarts:items/track_kits/advanced_detector" + } +} diff --git a/src/main/resources/assets/stevescarts/models/item/track_kits/junction.json b/src/main/resources/assets/stevescarts/models/item/track_kits/junction.json new file mode 100644 index 00000000..3b824aaf --- /dev/null +++ b/src/main/resources/assets/stevescarts/models/item/track_kits/junction.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "stevescarts:items/track_kits/junction" + } +} diff --git a/src/main/resources/assets/stevescarts/textures/blocks/tracks/outfitted/kit/advanced_detector_0.png b/src/main/resources/assets/stevescarts/textures/blocks/tracks/outfitted/kit/advanced_detector_0.png new file mode 100644 index 0000000000000000000000000000000000000000..69e9dd12897c72923b56f05e2b67c7bfa8cb9f72 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G_YAk0{w5?hRkRy)0h+{EWw}yWtiQH7xsT zKTj59sCP_d(NYeOY&^vgBX@toVc|=26n209zI*=*;gdltS+mcb_}o((X~5fTu2bx$ z8uKbd+eg!Kec>11Q*#12r|)X?y)Sj=_r3bXXC$W9N2bZe?^J zG%hhNHDpIvQUCw}S4l)cR5(waQ$0(=P!xUtz*WR8fe=DSOh|~yZ*UP89ZC^9IF>G5 zN*5^w1s&boO6K5b_x`JE&n@TieAUI_a9{5|_uQ|>G)*H_RVm7{lswNR%Q8vRR1t=u zbX_Op!52l5)O9UIQHTnBz2D2{+nvltmui8Jr>i5-4~rZXh~rp){6+>Kia3k#4WL_t zmL6|P1;~Ga9G8pYI)Y!F75JtfN$d>3eoT@iM?sUk>}OkxIk^yXdVR2Gw;H1upaNI~ zD}n%vgxxU6u-V9NyOr1ZTm{J^f*=rslle2EDiZs?S3ED5>T@~BY1{T7;47m8RHwjV zI#nM#B=G;xGrDsDXcuiG5!F|d2Ngh7B$8*($mQ7`>=&ks;{t*6@edwg&&ZklUC`&k zjoUN2bFoEQ0Ev9FOTeCyBnAlhVc9Z82t6Y|CO6;<@aN2bZe?^J zG%hhNHDpIvQUCw}Qb|NXR5(waQ@cvUP!PTQVi&gAe@GyN5E2p+V)6}kRu&d^Tl))s zfTh?hqAo6iAc&R!Hr_LOE@Rxv;xM^0XU@!I?sZ+)Nz*inx~`=xODT#%@;q0>aV*0y z2zl@&Ng{3AN>x>&0-v{+@_utJR~IL0f!+1#AJ7kr92H2@R1YLQPp5$dKooJ{uvmm| z0NpyYv^}d8An%=1I|ky9v)L~$it7kkdAZc&xAi(yfS*=5zJu4*O71-m-QoYZEXy