Railcraft
22 merged pull requests.
Needs action on an existing world:
- [check your build] #100 The Blast Furnace no longer pulls fuel out of an adjacent inventory on its own. Any setup that relied on a chest or other inventory with 27 or more slots next to the furnace to feed it fuel will stop working. Feed fuel with hoppers, pipes or another method instead.
Feed fuel into Railcraft Blast Furnaces with a hopper, pipe or other inserter instead of relying on a large chest placed next to them.
New Features
- #110 Updated en_US.lang with per-block bucket capacity and auto-output details for all tank blocks and valves; updated ItemBlockRailcraft tooltip logic. - @Eldrinn-Elantey
- Added: Tank capacity and output info in tooltips
- #106 Added burn particle effect to dropped Firestone items in FirestoneTickHandler. - @2ndDerivative
- Added: Burn effect on dropped Firestone items
Changes
- #108 Added color code support to GUI titles via resource pack localization; updated multiple GUI classes to use localized 'Power Level' string. - @Ranzuu
- Added: Color code support for GUI titles
Bug Fixes
- #122 FirestoneTickHandler.tick(WorldTickEvent) collects fire positions from spawnFireEntity, which now returns a position only for loaded chunks, and calls setBlock after iterating loadedEntityList, avoiding a ConcurrentModificationException. - @tiffit
- Fixed: ConcurrentModificationException crash from Firestone fire placement, crash when rejoining a world with a Railcraft HP boiler
- Closes GTNH#24670, GTNH#25403
- #121 Removed forced casts of ICrafting to EntityPlayerMP in TankManager, the Railcraft containers and PacketBuilder. PacketBuilder gained ICrafting overloads and TankManager sends fluid GUI data through a shared helper. - @ABKQPO
- Fixed: ClassCastException when ICrafting is not an EntityPlayerMP
- #119 BlockRailcraftStairs now overrides the getPickBlock variant without the player argument, and the player variant delegates to it. - @Ranzuu
- Fixed: stairs shown as Sandy Brick Stairs for every variant
- Closes GTNH#24169
- #117 BlockRailcraftSlab overrides canCreatureSpawn to return !RailcraftConfig.cannotMobsSpawnOnDecorBlocks. - @NotKaizul
- Fixed: mobs spawning on Railcraft slabs
- Closes GTNH#23894
- #116 TileAnchorWorld.readPacketData now calls setupChunks() only when Game.isHost(worldObj), so the client does not run chunk setup when receiving the packet. - @PLASMAchicken
- Fixed: players disconnected after linking a World Anchor on a server
- #112 TileSentinel.blockActivated now wraps the ticket manager pairing logic in a Game.isHost(worldObj) check, so it only runs on the server, matching the check in TileAnchorWorld. - @PLASMAchicken
- Fixed: client crash when using a crowbar on a Sentinel on a server
- Closes GTNH#23527
- #111 BlockRailcraftSlab now overrides the getPickBlock variant without the player argument and the player variant delegates to it, so callers like NEI get the TileSlab-based result. - @Cardinalstars
- Fixed: wrong pick block for slabs in NEI
- #109 Removed optional tags in IC2Plugin that caused NoSuchMethodError without IC2. TileLoaderEnergyBase now checks IC2Plugin.isModInstalled() before adding to the net, and TileSteamTurbine nulls emitterDelegate when registration fails. - @broscolotos
- Fixed: crash when IC2 is not installed
- #107 BlockTrack now overrides isProvidingStrongPower and returns the weak power value when side is 1, otherwise 0. - @DrParadox7
- Fixed: directional detection tracks not strongly powering the block below
- #104 Fixed world leak in TileAnchorWorld and TileSentinel; refactored ticket manager to clean up world references. Added world unload handler in CommonProxy. - @Alexdoru
- Added: World unload handler
- Fixed: World reference memory leak
- #103 Added the tile.railcraft.default.name=Track entry to en_US.lang. - @brandyyn
- Fixed: missing track names
- #102 Adjusted fuel.coke.png texture to correct version. - @Vlamonster
- #101 Adjusted fuel.coke.png texture width for proper alignment with coal texture. - @Vlamonster
Performance
- #125 EnumPost.values() calls in BlockPost.getSubBlocks and EnumPost.fromId are replaced with EnumPost.VALUES. - @boubou19
- #124 Particle velocity code in EntityChunkLoaderFX, EntityFireSparkFX, EntityHeatTrailFX and EntityTuningFX now uses plain double math instead of Vec3 objects. EntityDropParticleFX gets its own moveEntity with a vertical sweep for ground hits, and EntitySimpleParticleFX gains a setGroundCollision helper that EntityChimneyFX now uses. The vector recalculation runs every 8 ticks, and EntityHeatTrailFX particleMaxAge drops from 2000 to 200. - @boubou19
- Fixed: particle memory allocations
- #114 Replaced EnumOre.values() calls with the cached EnumOre.VALUES in BlockOre, ItemOre, RailcraftConfig and EnumOre.fromMeta. The depreciated flag on EnumOre is now final and set through a second constructor, so the static initializer block is gone. - @Alexdoru
- #99 TileTankWater and TileBoiler precompute the valid output faces for each pattern position and store them in static maps keyed by a bit-packed position. BoilerPattern now carries width and tank height. TankManager.outputLiquid skips ForgeDirection.UNKNOWN. - @54M44R
Removals
- #100 Removed the AdjacentInventoryCache, invFuel mapper and the moveOneItem call in TileBlastFurnace.updateEntity, along with unused imports. - @54M44R
- Removed: automatic fuel input from adjacent inventories in the Blast Furnace
- Migration: Feed fuel into Railcraft Blast Furnaces with a hopper, pipe or other inserter instead of relying on a large chest placed next to them.
Documentation
- #123 Deleted CONTRIBUTING.md, which held a single link to the CLA assistant for CovertJaguar/Railcraft. - @UltraProdigy
- Removed: CONTRIBUTING.md
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@boubou19 (8), @Dream-Master (7), @UltraProdigy (5), @Alexdoru (3), @PLASMAchicken (3), @54M44R (2), @Nikolay-Sitnikov (2), @Ranzuu (2), @Vlamonster (2), @2ndDerivative (1), @ABKQPO (1), @Algent (1), @brandyyn (1), @broscolotos (1), @Caedis (1), @Cardinalstars (1), @DrParadox7 (1), @Eldrinn-Elantey (1), @EnderProyects (1), @FourIsTheNumber (1), @Guvante (1), @koolkrafter5 (1), @MalTeeez (1), @NotKaizul (1), @Pxx500 (1), @slprime (1), @tiffit (1), @wlhlm (1)