1.12.2-6.5.2
on Mar 25, 20251.12.2-6.5.2 - March 24nd, 2025
- Added: Validation for gui container host being in same world, valid, and loaded to interaction check
- Added: Validation for player moving items into and out of inventories to run the above checks
- Fixed: Duplication bug caused by tiles failing interaction check
Duplication Bug
This was caused by GuiContainerBase failing to set the node
during construction. With the node being null
the
interaction check was defaulting to true
. Leading to no range checks on any player opened ICBM inventories. Which
when combined with chunk save/load exploits can result in duplication.
1.12.2-6.5.1
on Mar 23, 20251.12.2-6.5.1 - March 22nd, 2025
- Fixed: NPE #452 caused by projectiles failing to calculate intercept.
- Introduced in version 1.12.2-6.4.0 as part of commit 9c870ad
1.12.2-6.5.0 - March 22nd, 2025
Runtime changes
- Added: JEI handling for held item missile
- Added: JEI handling for balloon cargo item
- Added: JEI handling for parachute cargo item
- Added: smoke particles matching vanilla to TNT like blasts
- Added: nbt support to block replacement system
- Added: nbt support to radioactive block swap system
- Added: ~ support to block state replacements to keep existing state the same
- Added: default support for emps to mekanism machines
- Changed: emp config location and various fields
- Changed: emp from radius check to box size range check (small performance bonus)
- Fixed: default config values causing unknown item warnings
- Fixed: ore dictionary values not registering at correct loading phase
- Fixed: missing projectile impact event to missiles and cargo entities
- Fixed: players riding missiles not triggering arc flight logic
- Fixed: launcher GUI zeroing out target fields when game unfocuses
- Fixed: launcher seat breaking tool interaction
- Fixed: radioactive replacement chance being inverted
- Fixed: NPE #452 caused by radar map receiving a null entity or contact
Dev changes
- Removed: unused has emp handler check
1.12.2-6.4.1 - September 30th, 2024
- Fixed: server side crash due to client side code loading
1.12.2-6.4.0 - September 29th, 2024
Runtime Changes
- Added: subtitle translations for audio assets
- Added: item-holder missile (aka sword missile) that can hold and action held items/blocks
- Added: config for missile simulation speed (how fast missile moves outside game world)
- Added: recipe for marking smoke
- Added: warning to cluster, parachute, and balloon when held items are config disabled
- Added: configs for radioactive blocks (delay, chance, range, damage, and wither duration)
- Added: audio for radioactive block
- Added: half life decay for radioactive blocks (configurable chance and can be disabled)
- Added: recipe to remove items from parachute and balloon
- Added: partial korean translations made by community contributor (Shell) on github
- Changed: condensed explosive to use vanilla large and huge explosion particles for resource pack makers
- Changed: cruise launcher status messages to be more informative
- Changed: 'No Status Data' message to 'No Status... server desync' to better reflect cause
- Changed: tooltip on cluster, parachute, and balloon to show held item's tooltip & details
- Changed: spike block config to exist under 'blocks' parent config
- Fixed: parachute and balloon configs not always loading disallow list properly
- Fixed: npe when unloading world with null blast instance
- Fixed: thermobaric using same blast as nuke (legacy tech debt go brrr)
- Fixed: Issue #447 missiles setting hit target's position to invalid number, fix by community contributor Shell4026 on Github PR 448
- Removed: unused audio files decreasing file size
1.12.2-6.3.1 - June 20th, 2024
- Fixed: protective armor config not loading
1.12.2-6.3.0 - June 20th, 2024
Runtime Changes
- Added: config to disable JEI support
- Added: config to disable payload recipes in JEI
- Changed: emp tower to ignore missile intercepts outside it's max range
- Reworked: missile emp effect
- Fixed: conditional action system not building meta types (broke emp and cluster)
- Fixed: emp tower not firing
- Fixed: emp tower animation not playing if power requirements were off
- Fixed: emp tower showing power requirements when power was disabled
- Fixed: possible issue with flying block duplication, isn't confirmed but changes setBlock from status 3 to 2
Missile EMP Rework
Previously missile would only disable it's engine on EMP. With 6.3.0 it will randomly switch between engine disable, engine fuel explosion, missile destruction, and payload triggering. All of this is configurable and can be disabled as desired.
Order of chance is destruction -> engine/guidance -> payload. Chance is less than equal to value set. Random is re-run per each section. With first to pass being picked.
- Destruction: 50%
- Fuel: 100% -> Explosion: 1f
- Engine: 80%
- guidance -> set to deadlogic zero fuel, falls out of sky but maintains existing velocity
- Payload: 10%
- ExMissile -> explosive
- ActionMissile(cluster) -> action
- SAM -> Explosion: 1f
Dev Changes
- Fixed: MetaTag generation using key as domain and other janky issues. This broke the MetaTag.isType check
- Changed: MetaTag key to be namespace (mod's domain) + path (previously key)
- Changed: MetaTag subtype creation to prefix the parent's path to better organize. Previously key was just
icbmclassic:error
now isicbmclassic:action.status.red.error
. This will help with translation keys later and make it more clear what the tag is by name alone.
1.12.2-6.2.0 - June 14, 2024
- Added: config for missile visual arc limit
- Changed: missile arc default from 200 to 500 meters
- Fixed: blast not clearing if error is thrown
- Fixed: multi-threaded blast re-running after chunk reloads
- Fixed: blast not clearing if failed to load from save
- Fixed: blast saying failed to find explosive data when it was actually found during world load
- Fixed: explosive data returning null for a non-null api
- Fixed: blasts not removing from world tick handler
- Fixed: missiles entering simulation at world height due to vanilla chunk load detection
1.12.2-6.1.0 - June 12, 2024
- Added: configs for radar station
- Changed: simulation enter height to 500 from 25
- Changed: simulation exit height to 450 from 250
- Changed: simulation exit speed to 1m/t from 2m/t
- Changed: sam firing delay from %tick to countdown reset
- Changed: sam firing delay to 40 ticks from 10 ticks
- Fixed: config gui crash due to parsing error
- Fixed: some console log spam left over from dev testing
- Fixed: typo in missile launcher power config
1.12.2-6.0.1 - May 26, 2024
TODO
1.12.2-6.0.0 - April 23rd, 2024
- Added: cluster missile - dynamic item support allowing anything to be added to payload. Some items have special projectile handling allowing spawning entity version instead of item.
- Added: projectile handling for arrows
- Added: projectile handling for potion arrows
- Added: projectile handling for spectral arrows
- Added: projectile handling for eggs
- Added: projectile handling for snowballs
- Added: projectile handling for spawn eggs
- Added: Parachute - allows attaching items/blocks for deployment
- Added: Balloon - similar to parachute but inverted gravity... mostly for lolz
- Added: ballistic arc version of rocket launcher. Allows firing a missile in same way as silo or basically a javelin launcher
- Reworked: FlyingBlocks to better handle placement and collect item version. Allows remembering machines and more complex blocks. Impacts redmatter, anti-gravity, endo, exo, sonic, and works with parachute system
- Reworked: Anti-gravity to remove 1 block per tick, apply outward motion, and extend flying block life to encourage return to ground
- Reworked large chunks of content to use action system, which will replace projectile and blast system as a generic conditional do-task system. For developers, this means large chunks of the API are deprecated and changed. Future plan is to feed everything through the action system and expose logic via listeners. Everything will have an action source, cause-by chain, and be abstracted to improve flexibility. Allowing for replacement of logic by other mods and interception of actions for better integrations. Such as providing improved world protection, handling admin logging, or even just showing events on a map.
TODO finish
1.12.2-5.4.0 - October 10th, 2023
Runtime Changes
- Added: blockState ban/allow list for flying blocks
- Added: dynamictrees to flying block ban list due to block spawning issues
- Added: launcher rotation system
- Added: launcher firing solution system
- Added: uuid for launchers to track firing events
- Fixed(workaround): flying block crashing due to mods with broken block renders
- Fixed: redmatters not handling removal of explosive entities causing antimatter to fail to kill redmatter
- Fixed: some issues with redmatter movement
- Fixed: collision issues with redmatter causing issues with antimatter not killing redmatter
- Fixed: launcher min range check failing when only one axis was in use
- Fixed: issues with packet system
- Fixed: ore dictionary registering at wrong stage
- Fixed: missile platholder collision on seats
- Fixed: launcher rotation issues
- Fixed: launcher seat not saving player state properly
- Fixed: text inputs not resetting in some UIs
- Fixed: emp tower not respecting max range
- Fixed: accuracy being too high at shorter distances
- Reworked: launcher to use tick actions over ticks
- Removed: ic2 support, it didn't work and other mods provide FE to EU
- Note: add automated tests to confirm missile accuracy
Dev Changes
- Added: blockState config list, can be used to detect any blockstate via config
- Added: entire mod selector for blockState
- Added: fuzzy start and end selector for blockState
- Added: block version of the above
- Added: common system for spawning flying blocks (used by anti-gravity, endothermic, exothermic, redmatter, etc)
- Added: new block, tool, and material icons by Morton00000 see credits file for which
- Added: event system for read-only information on common events and network calls
- Added: break line support to lang files
- Reworked: network system to better handle encoding/decoding... basically codex but with lambdas
- Reworked: ballistic flight logic to use sub-types for more customization options
- Removed: old gps system
- Changed: builds to use amazon JDK 8 for better consistency
5.3.0 - May 6th, 2023
Mostly cleanup and refactors for better addon support
Runtime Changes
- Added: energy upkeep cost for EmpTower. firingCost = range^2 * configTickingCost
- Added: config for emp tower max range
- Added: config for emp tower bonus range
- Added: config for emp tower cost per area scaling. tickingCost = range^2 * configValue
- Added: config for emp tower cost ticking
- Added: config for emp tower cooldown
- Added: config for emp tower energy buffer size for cost ticking. energyBuffer = firingCost + (tickingCost * configValue)
- Added: config for emp tower energy received limit
- Added: disable radio interaction using
alt + click
over radio icon - Added: energy cost and upkeep tooltips to energy bar hover tooltip
- Updated: gui tooltips to improve readability
Dev Changes
- Added: isDisabled flag to radio capability instance, not exposed to API calls
- Added: IMachineInfo interface for use with CC addon to access configs and settings
- Added: machine info to empTower, radarStation, launcher, cruise launcher
- Added: disabled icon button, useful for disabling functionality and showing it as a 'canceled' style overlay
- Added: line split functionality to lang utility, allows tooltips to next line using
\\n
- Added: line indent functionality to lang utility, allows tooltips to prefix 2 spaces using
\\t
- Refactored: launcher network to store host tile, needed for CC support
- Refactored: energy storage usage, dropped IEnergyBuffer in favor of IEnergyStorage as primary
- Refactored: EnergyBuffer to be more lambda driven for easier reuse
- Deleted: TilePoweredMachine, moved helpers to EnergyBuffer
- Deleted: TileFrequency and TileLauncherPrefab, both were empty and only used by cruise launcher
- Deleted: EnergyBufferLimited and PowerBuffer subtypes of EnergyBuffer
5.2.3 - May 1st, 2023
- Fixed: Incorrect version definition, leading to the CC addon not working
5.2.2 - April 29th, 2023
Mostly dev changes for CC addon https://github.com/BuiltBrokenModding/ICBM-Classic-CC-Addon
- Added: way to get missile unique key from builder capability
- Added: getting for cruise launcher's capability, for use in CC addon
5.2.1 - April 25th, 2023
- Fixed: redmatter init not getting config scale due to unimplemented method
5.2.0 - April 25th, 2023
Runtime Changes
- Added: User defined firing delay to launcher base. Allows users to define a delay in ticks in the UI. Useful for firing several missiles or handling redstone door interaction.
- Added: Firing data delay to launcher base. Allows controllers to supply additional delay length on top of user defined.
- Added: Better launcher screen feedback for when launchers are not ready to fire
- Added: Error feedback when status system breaks client side. Shouldn't happen but now has an error so not to confuse users.
- Added: blast scale config options
- Added: several configs for nukes to handle sub-blasts of rot and mutation. Including ability to customize damage multiplier.
- Fixed: Some issues of action status not syncing to clients causing launchers to act as not ready client side
Dev Changes
- Added: Way to define delays in firing data
- Added: Warning spam to chat if status action is not registered for save/load
- Added: interface for fuse delay, used with firing data
- Added: interface for firing delay, used with firing data
5.1.2 - April 14th, 2023
- Fixed: inventory hardcoding drops to slot zero
5.1.1 - April 14th, 2023
- Fixed: inventory hardcoding issues
- Fixed: launcher network connector blocks dropping launcher's inventory
- Fixed: launcher network invalidation issues
- Fixed: nameplate showing for launcher
5.1.0
- Fixed: redstone interaction issues with explosive blocks
5.0.0
- Added: launcher connector to pass power, data, and inventory
- Added: launcher network system allowing any block to be part of the launcher setup and connect
- Added: support for several launchers connect to a single or multi-screen setup. All the rockets \0/
- Added: on/off redstone toggle to radar UI
- Added: auto generation of radio ID to help users pick a unique ID
- Added: UI to launcher base to handle lock height and later features such as grouping & delay fire
- Added: logic to have fragments break blocks (glass, leaves) and pass through on impact (leaves)
- Added: logic to have missiles break and pass through blocks as well
- Added: easer egg for flying chickens on missiles
- Added: ability to fire entities from offhand leash
- Added: vanilla portal interaction for missiles
- Added: collision override register for missiles. Allows other devs to add custom interaction, including portal support.
- Added: mekanism portal interaction for missiles, requires portal frame block as backstop for detection to work
- Added: missile subtitles, not all sounds are covered yet
- Added: direct redstone support to cruise launchers
- Added: xz motion feezing to missiles fixing over/under shooting targets are larger ranges
- Added: distance based inaccuracy
- Removed: tiers from launcher
- Removed: multi-block from launcher
- Reworked: Launcher heavily to be capability driven and decoupled from screen
- Reworked: launcher frame/support to be primary decorative
- Reworked: cruise launcher to work with launcher screen
- Reworked: block visuals and models
- Reworked: item visuals
- Reworked: launcher base to no longer be 3D, simplifying visuals. Later updates/addons will add more visuals to make up for loss of tier visuals.
- Reworked: launcher screen to no longer be 3D, simplifying visuals. Later updates will add more screens and controllers that may be 3D
- Reworked: launcher GUIs to visually look nicer and be easier to use. Including adding tooltips for icons to understand what each component does.
- Reworked: radar to no longer be 3D, simplifying visuals. Later radar rewrite will include 3D radar blocks that connect to this screen.
- Reworked: credit tracking to better match artist/license to each asset we use. Future no asset will be added without known credit/license to avoid killing the project.
- Reworked: emp tower to be optional multi-block. Each block added increases max range.
- Reworked: emp tower to have spin up/down, cooldown, and animations
- Reworked: radio system to use packets and provide two way feedback to users
- Removed: old xmas content, still planning on making an addon for this but am lazy
- Renamed: sulfur to organic sulfur to match that it is creeper dropped
- Updated: localization
- Updated: user feedback for tool usage and interaction
- Updated: radio system to handle strings instead of just numbers. Allowing more complex IDs to be used.
- Fixed: missile bound check for launcher base
- Fixed: proxy being called twice on load
- Fixed: missile flight path issues
- Fixed: fragments spawning inside group depending on missile angle
- Fixed: duplicate block information
- Fixed: cruise launcher not consistently hitting target
- Fixed: radar registry issues for missiles not showing on detectors
- Fixed: radar registry crashing servers when chunks unload
- Fixed: missiles not raytracing blocks correctly. Some cases missiles can still clip through at higher speeds due to MC bugs.
- Fixed: lock height being used as det height
- Fixed: laser det firing on network thread instead of main thread causing crashes at random
4.4.0
- Updated: all missile models and textures
4.3.0
- Removed: hypersonic missile, we already have sonic and don't need duplicate types with minimal size difference.
4.2.1
- Fixed: lwjgl being called server side
- Fixed: cruise launcher text box selection issue
- Fixed: antidote missing from creative tab
4.2.0
- Added: localizations for smoke ex types
- Added: creative mode way to add minecarts to missiles
- Added: inventory support to cruise launcher
- Added: battery slot to cruise launcher
- Added: color blast
- Added: smoke blast
- Added: recipe lookup for missile modules
- Added: SAM missile
- Reworked: missile logic and functionality
- Reworked: direct fired missiles to have fuel
- Reworked: missiles to be heavily capability driven for flight, targeting, and references
- Reworked: launchers to view missiles as capabilities to allow more types to be added outside existing items/entities
- Updated: recipe data and made improvements
- Fixed: recipe issues
- Fixed: item frame rendering for missiles
- Fixed: rider issues with missile seat
- Fixed: missiles simulating while being ridden by players, or by players riding another entity
- Fixed: cruise launcher not aiming correctly with laser det
- Fixed: cruise launcher min range detection
- Changed: nuke and large blast step calculation to remove atan - small performance improvement
- Fixed: Blocks with a hardness smaller than 0 (e.g. bedrock) are not included in thermobaric and nuclear blast power calculation