diff --git a/cf-lib/changelog.txt b/cf-lib/changelog.txt index a8ccbc2..f658edc 100644 --- a/cf-lib/changelog.txt +++ b/cf-lib/changelog.txt @@ -1,4 +1,15 @@ --------------------------------------------------------------------------------------------------- +Version: 1.4.0 +Date: 10.01.2026 + Changes: + - Add Entity.setFilename +--------------------------------------------------------------------------------------------------- +Version: 1.3.0 +Date: 24.12.2025 + Changes: + - :apply() returns self + - Add Recipe:addIndicatorIcon() +--------------------------------------------------------------------------------------------------- Version: 1.2.0 Date: 14.12.2025 Changes: diff --git a/cf-lib/data/Entity.lua b/cf-lib/data/Entity.lua index 4a21072..10172ad 100644 --- a/cf-lib/data/Entity.lua +++ b/cf-lib/data/Entity.lua @@ -26,4 +26,21 @@ Entity.collisionBox = function(width, height, margin) } end +--- Sets the file name on a picture considering various formats. +--- If sheets or layers are found, use the optional param to select the right one. +--- @param sprite table The sprite to replace the filename in +--- @param filename string The new filename +--- @param sheetLayer number The sheet or layer index to use. Defaults to 1. +Entity.setFilename = function(sprite, filename, sheetLayer) + if sprite.filename then + sprite.filename = filename + elseif sprite.sheet then + sprite.sheet.filename = filename + elseif sprite.sheets then + sprite.sheets[sheetLayer or 1].filename = filename + elseif sprite.layers then + sprite.layers[sheetLayer or 1].filename = filename + end +end + return Entity \ No newline at end of file diff --git a/cf-lib/data/Item.lua b/cf-lib/data/Item.lua index 5934a72..a7d753c 100644 --- a/cf-lib/data/Item.lua +++ b/cf-lib/data/Item.lua @@ -32,6 +32,7 @@ end --- Applies the item to the game function Item:apply() data:extend({ self.prototype }) + return self end --- Assigns data to the item @@ -50,7 +51,7 @@ function Item:merge(data) return self end ---- Sets the weight of the item calculated from given count per rocket. +--- Sets the weight of the item calculated from given count per rocket --- @param count number The amount of items that fit into a rocket function Item:itemsPerRocket(count) self.prototype.weight = (1000 / count) * kg diff --git a/cf-lib/data/Recipe.lua b/cf-lib/data/Recipe.lua index 213aa14..32a9d67 100644 --- a/cf-lib/data/Recipe.lua +++ b/cf-lib/data/Recipe.lua @@ -32,6 +32,7 @@ end --- Applies the recipe to the game function Recipe:apply() data:extend({ self.prototype }) + return self end --- Assigns data to the recipe @@ -225,4 +226,26 @@ function Recipe:clone(name) return Recipe:new(clone) end +--- Adds a small icon in the corner of the regular item +--- It currently assumes an icon_size of 64 +--- @param icon string The filename of the icon +--- @param position string The position of the icon. One of ["top-left", "top-right", "bottom-left", "bottom-right"]. Defaults to "bottom-right". +function Recipe:addIndicatorIcon(icon, position) + local icons = self.prototype.icons or {} + local mainIcon = icons[1] or self.prototype.icon or nil + if not mainIcon then + local result = self.prototype.results[1] + local resultItem = data.raw[result.type][result.name] + icons = resultItem.icons or {{ icon = resultItem.icon }} + end + local shift = { 8, 8 } + if position == "top-left" then shift = { -8, -8 } end + if position == "top-right" then shift = { 8, -8 } end + if position == "bottom-left" then shift = { -8, 8 } end + table.insert(icons, { icon = icon, scale = 0.25, shift = shift }) + self.prototype.icons = icons + log(serpent.block(self.prototype.icons)) + return self +end + return Recipe diff --git a/cf-lib/data/Technology.lua b/cf-lib/data/Technology.lua index 13a1dd9..3dd3b48 100644 --- a/cf-lib/data/Technology.lua +++ b/cf-lib/data/Technology.lua @@ -40,6 +40,7 @@ end --- Applies the technology to the game function Technology:apply() data:extend({ self.prototype }) + return self end --- Assigns data to the technology diff --git a/cf-lib/info.json b/cf-lib/info.json index 51dbeef..77044a6 100644 --- a/cf-lib/info.json +++ b/cf-lib/info.json @@ -1,6 +1,6 @@ { "name": "cf-lib", - "version": "1.2.0", + "version": "1.4.0", "title": "cackling fiends library", "description": "Because I'd like to have my own library :-)", "author": "cackling fiend",