Kuxynator's Core Library


Provides core functionality for Kuxynator's mods. ----------------------------------------------- MPORTANT! Do not update if it is not required. If you update it too early you will have to wait until dependent mods are also updated!.

Internal
12 days ago
1.0 - 2.0
71.3K

Changelog

Version: 3.15.4 WIP
  Features:
    - add ItemData.setStacksize
Version: 3.15.3
  Features:
    - add Storage.check() - check if `storage` contains funktions
    - add AsyncTask class - Functions for handling long-running things over multiple ticks
    - add global functions set_1 ... set_9, set_n and global vars _1 ... _9, _n
    - add Storage.check() - check if `storage` contains functions
    - add KuxCoreLib.__version - the version of the library (corresponds to the mod version)
  Changes:
    - Trace does not use _G.trace_isEnabled anymore use Trace.isEnabled instead
    - Trace.isEnabled is false by default (trace_isEnabled was true)
Version: 3.15.2
  Features:
    - global getPlayer, getSurface, getForce, getPlayerName, getSurfaceName, getForceName
Version: 3.15.1
  Features:
    - add RadarData.calcEnergyByScanTime
    - SelectionTool (WIP)
  Changes:
    - Player.getZoomFactor returns 1 if interfacxe Kux-Zooming is not available
Version: 3.15.0
  Changes:
    - KuxCoreLib.PrototypeData.Extend extended for all prototypes
  Bugfixes:
    - Change the order of event registration. fixes Factorissimo get_factory_by_entity
Version: 3.14.4
  Changes:
    - make ModInfo unprotected and add a protect() function
    - EventDistributor spports on_space_platform_built_entity, on_space_platform_mined_entity
Version: 3.14.3
  Features:
    - Player: add zoom, controller_type
    - add Events.on_next_tick
  Changes:
    - Factorissimo.getToplevelSurface
    - Trace.getIdentifier: add unit number
Version: 3.14.2
  Bugfixes:
    - another false warnung fixed "Area for Position not found in package.loaded"
Version: 3.14.1
  Bugfixes:
    - false warnung fixed "Area for Position not found in package.loaded"
Version: 3.14.0
  Features:
    - include stdlib with fixes and compatibility for Factrorio 2.0
Version: 3.13.1
  Features:
    - add KuxCoreLib.Freeplay (wrapper for 'freeplay' remote interface)
  Bugfixes:
    - Fix Factorissimo.isFactoryFloor
    - Fix Inserter class
Version: 3.13.0
  Features:
    - add is_obj(any,object_name)
  Changes:
    - force to overwrite global vars in each (sub-)stage, this fixes an issue that other mod overwrites my global vars
    - protect my classes from accidental changes
Version: 3.12.2
  Bugfixes:
    - FlyingText.create() Fix Factorio 2.0 compatibility
Version: 3.12.1
Version: 3.12.0
  Features:
    - add PlayerStorage (use KuxCoreLib.PlayerStorage)
    - add @class PlayerData
    - add Timer (use KuxCoreLib.Timer) [proof of concept]
    - add @class TimerData
    - add Flags.toDictionary :: converts a string[] to a dictionary
Version: 3.11.5
  Bugfixes:
    - Fix Factorissimo.isFactoryFloor
Version: 3.11.4
  Features:
    - Add ModInfo.version
  Changes:
    - ModInfo.new()
  Bugfixes:
    - Fix Factorio 2.0 compatibility
Version: 3.11.3
  Changes:
    - Fix Factorio 2.0 compatibility
Version: 3.11.2
  Changes:
    - add `lib/mod-base`
    - add global vars: _G.mod (=script_active_mods), _G.isV1, _G.isV2
    - Factorio 2.0 compatibility code
Version: 3.11.1
Date: 2024-10-21
  Features:
    - add Factorissimo.isAvailable()
  Changes:
    - Use of `(global or storage)` as a temporary fix
  Bugfixes:
    - Fix a crash in Factorissimo.isFactoryFloor if Factorissimo mod is not available.
  Info:
    - push to Factorio 2.0
Version: 2.11.0
Date: 2024-01-17
  Features:
    - Add GuiElementCache
Version: 2.10.0
Date: 2023-11-16
  Features:
    - Add ElementBuilder (use KuxCoreLib.GuiBuilder.ElementBuilder)
    - Add GuiHelper
  Bugfixes:
    - Fix loading GuiBuilder
Version: 2.9.6
Date: 2023-11-12
  Features:
    - ADD DataGrid
Version: 2.9.5
Date: 2023-11-06
  Features:
    - Trace.getIdentifier
    - Table.getKeysFilterByValue
    - Factorissimo: getFactory, getToplevelFactory
Version: 2.9.4
Date: 2023-11-03
  Features:
    - EntityData/ItemData/RecipeData/TechnologyData: NEW field 'base' returns the base prototype
Version: 2.9.3
Date: 2023-11-02
  Bugfixes:
    - Fix missing Trace.mock
Version: 2.9.2
Date: 2023-10-28
  Features:
    - Trace: defines_name, defines_displayname, exit
  Changes:
    - Trace: color
  Bugfixes:
    - Fix CollisionMaskData not found
Version: 2.9.1
Date: 2023-10-13
  Features:
    - ADD CollisionMaskData
    - ADD Trace color
    - ADD Trace warning, error
  Changes:
    - some Factorissimo member changed/removed
  Bugfixes:
    - FIX Table.countNonNumericKeys
    - FIX Table.count
Version: 2.9.0
  Features:
    - ADD Factorissimo a Factorissimo API
    - ADD SurfacesMod a Surfaces API
    - ADD Events.on_custom_input
    - ADD PrototypeData.extend
  Bugfixes:
    - FIX naming in SettingsData.extend
Version: 2.8.3
  Bugfixes:
    - FIX a bug in Settingsdata.extend (wrong prefix)
Version: 2.8.2
  Features:
    - ADD PickerDollies support (optional)
    - ADD Events.on_entity_moved (using PickerDollies)
    - ADD Events.getDisplayName, registerName (alias for same functions in EventDistributor)
Version: 2.8.1
  Features:
    - ADD ModInfo.isModLoaded
    - ADD ErrorHandler
Version: 2.8.0
Date: 2023-08-29
  Features:
    - ADD class Trace
    - ADD class Events
    - ADD EventDistributor: register_on_timer, unregister_on_timer
    - ADD SettingsData.extend
  Bugfixes:
    - FIX a bug in safeget
Version: 2.7.3
Date: 2023-07-27
  Features:
    - ADD BigData
  Bugfixes:
    - WORKAROUND keep on_nth_tick registered
Version: 2.7.2
Date: 2023-07-20
  Features:
    - ADD AnimationData
  Changes:
    - EventDistributor.register accepts array for eventIdentifier
  Bugfixes:
    - FIX handler for CustomInput events
Version: 2.7.1
Date: 2023-07-11
  Changes:
    - rename 'global' into 'storage', resp. all other 'Global...' names into "Storage...'
Version: 2.7.0
Date: 2023-07-10
  Features:
    - ADD ModInfo
    - ADD Debug: getExecutingMod, getCallingMod, getEntryMod
    - ADD Technology
    - ADD GuiBuilder
    - ADD Global  (Storage in >= 2.7.1)
    - ADD GlobalPlayer (StoragePlayer in >= 2.7.1)
    - ADD GlobalPlayers (StoragePlayers in >= 2.7.1)
    - ADD lua: safegetOrCreate
    - ADD String: join
    - ADD Flags
  Changes:
    - Assert renamed to That (breaking changes)
    - Assert complaints like in NUnit
    - all modules are initialized local first (breaking changes)
      - so every one has the choice now, where modules are visible
      - NOTE for existing mods: check the visibilitty. require(__Kux-CoreLib__/lib/module) is not global anymore!
    - documentation updated
  Bugfixes:
    - Make some file extensions lowercase
Version: 2.6.1
Date: 2023-06-29
  Bugfixes:
    - FIX a error with Table that was accidentally local by default
Version: 2.6.0
Date: 2023-06-28
  Features:
    - ADD class DataRaw
    - ADD class EntityData
    - ADD class ItemData
    - ADD class PrototypeData
    - ADD class RecipeData
    - ADD class TechnologyData
    - ADD class TechnologyIndex
    - AAD artifical event 'on_built', 'on_destroy'
    - ADD class Path
    - ADD String.escapeTable
    - ADD Table.append, Table.stats, Table.removeAt, Table.move, Table.removeGaps
    - Add lua: anypairs(t)
  Changes:
    - String.split add second parameter
    - List:insert parmeters swapped (breaking changes!)
    - safeget,safeset now accepts path string ("foo.bar.v")
    - existing external Log modules wil be overriden!
  Bugfixes:
    - FIX a bug in Table.remove
    - FIX a bug in String.escape, '/' was not escaaped
Version: 2.5.3
Date: 2023-06-07
  Bugfixes:
    - FIX Version
Version: 2.5.2
Date: 2023-06-01
  Features:
    - ADD EventDistributor: registerName, getDisplayName
Version: 2.5.1
Date: 2023-05-31
  Features:
    - Table.migrate:
      - ADD parameter versionField
      - auto detect versionField "dataVersion", "version"
Version: 2.5.0
Date: 2023-05-27
  Features:
    - ADD Dictionary, List
    - ADD Table.isNilOrEmpty
    - UPD prototypeUtils
    - UPD Version
  Optimizations:
    - EventDistributor
  Bugfixes:
    - Table.toJson()
Version: 2.4.1
Date: 2023-05-15
  Features:
    - ADD Version.baseVersionGreaterOrEqual1d1
  Changes:
    - add mod.lua
Version: 2.3.0
Date: 2023-05-11
  Features:
    - ADD Table.diff, Table.removeEmptyTablesRecursive, Table.toJson
    - ADD String.isNilOrEmpty, String.isNilOrWhitespace
Version: 2.2.0
  Features:
    - ADD ColorConverter
Version: 2.1.0
Date: 2020-11-24
  Info:
    - v2.x.x scheme is for Factorio 1.1 (experimental)
Version: 1.1.0
Date: 2020-10-26
  Features:
    - lib.Table NEW
      - getKeys
      - getValues
      - count
      - migrate
    - lib.Tools NEW
      - stringSplit
    - lib.TestRunner NEW
      - run
    - lib.lua
      - safeget
      - safeset
  Optimizations:
    - added tests
  Bugfixes:
    - fix Table.migrate. return value was nil
    - fix crash in Log on_init
Version: 1.0.2
Date: 2020-10-25
  Bugfixes:
    - fix crash in Log.trace. > attempt to index upvalue 'data' (a nil value)
Version: 1.0.1
Date: 2020-10-23
  Bugfixes:
    - fix crash in Log.onSettingsChanged
Version: 1.0.0
Date: 2020-10-21
  Features:
    - Log
    - Modules
    - FlyingText
    - lua extension: iif, switch, try catch,
  Info:
    - firt public version