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
3 days ago
1.0 - 2.0
80.8K

Changelog

Version: 3.16.4
  Features:
    - auto tooltips, captions to ElementBuilder
    - ElementBuilder add parameter: localization_section, locale
    - ElementBuilder: tags.path calculation
    - TranslationService add hasTranslation()
    - Eventdistributoe: define _G.player (set in each event
  Changes:
    - TranslationService accepts strings as LocalisationStzring
    - ElementBuilder parameter all_names renamed to element_index
    - ElementBuilder parameter localization_prefix removed
    - TranslationService getHash optimized
  Bugfixes:
    - fix a bug in TranslationService
Version: 3.16.3
  Features:
    - add LocalizationUtils
    - add TranslationService
Version: 3.16.2
  Changes:
    - add global locstring, a global function that returns a LocalisedString always as a table.
Version: 3.16.1
  Bugfixes:
    - fix for mussing 'supertype' field
Version: 3.16.0
  Features:
    - Dictionary: add firstKey,firstValue
    - add classes LuaGenericPrototype, GuiElemenRef, GuiView, VGuiElement
    - List: add sort
    - lua: lower add utf8 support
    - GuiHelper: getPath, getElementKey
    - add FunctionUtils
  Changes:
    - Table.migrate
    - ElementBuilder
    - Table.indexOf returns nil if not found instead of 0 [BREAKING CHANGE]
    - add missing elem_tootip for ElementBuilder
Version: 3.15.15
  Changes:
    - Dictionary
    - getRecipe()
  Features:
    - RecipeWithQuantity wrapper
Version: 3.15.14
  Changes:
    - many changes for Factorium
Version: 3.15.13
  Changes:
    - add pipe-connection-util
    - change entity-scale-util
    - ElementBuilder.createView optional all_names
    - StageBridge.hasData: add support for data stage
    - StageBridge.hasSettings: add support for data stage
    - SettingsData.extend:string: add named 3rd parameter 'allowed'
    - add EntityData.unpackBoundingBox4
    - add EntityData.getSize
    - Table.removeAt: remove old workaround
    - EventDistributor.register: add support for event array
    - DataRaw.entityTypes Factorio 2.0 space-age support
    - DataRaw.itemTypes Factorio 2.0 space-age support
Version: 3.15.11
  Features:
    - get_1 ... get_9, get_n
    - ElementBuilder.createView: add optional paramter all_names
    - PrototypeData.SpritePrototype: add unnamed parameters
    - EntityData.scale: add more cases in entity-scale-util
    - PrototypeData.VirtualSignalPrototype: add unnamed parameters
    - Table.replace
  Changes:
    - ElementBuilder.createView: add mode_name parameter
Version: 3.15.10
  Changes:
    - ElementBuilder: chidren are accepted directly in args
Version: 3.15.9
  Features:
    - add StageBridge a tool to transfgfer data between stages (settings -> data -> control)
    - add EntityData.scale support for radar
Version: 3.15.8
  Features:
    - add EntityData.scale (support for furnace and assembling-machine, all oter WIP)
  Changes:
    - StringBuilder class hierarchy and docu improved (the use does not change)
    - SettingsData.Extend x:int,x:double suporting more arguments
  Bugfixes:
    - fix a bug in StringBuilder.append
Version: 3.15.7
  Bugfixes:
    - Fix SettingsData
Version: 3.15.6
  Features:
    - add PickerDollies.move_shadow_entities
    - add PickerDollies.move_entity
    - add hidden const settings for `extend` -> bool_const, int_const, double_const, string_const, color_const
Version: 3.15.5
  Features:
    - add ItemData.setStacksize
    - add patch parameter to EntityData.clone, ItemData.clone, RecipeData.clone, TechnologyData.clone
    - add Table.appendRangeReverse
    - and more
  Bugfixes:
    - Fix a bug in EventDistributor.unregister
    - Fix a bug in EventDistributor.script_register filters not passed
    - fix stdlib Position.from_chunk_position now accepts table<number>
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