Compare commits

..

No commits in common. "master" and "1.2.0" have entirely different histories.

6 changed files with 2 additions and 55 deletions

View file

@ -1,15 +1,4 @@
---------------------------------------------------------------------------------------------------
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:

View file

@ -26,21 +26,4 @@ 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

View file

@ -32,7 +32,6 @@ end
--- Applies the item to the game
function Item:apply()
data:extend({ self.prototype })
return self
end
--- Assigns data to the item
@ -51,7 +50,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

View file

@ -32,7 +32,6 @@ end
--- Applies the recipe to the game
function Recipe:apply()
data:extend({ self.prototype })
return self
end
--- Assigns data to the recipe
@ -226,26 +225,4 @@ 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

View file

@ -40,7 +40,6 @@ end
--- Applies the technology to the game
function Technology:apply()
data:extend({ self.prototype })
return self
end
--- Assigns data to the technology

View file

@ -1,6 +1,6 @@
{
"name": "cf-lib",
"version": "1.4.0",
"version": "1.2.0",
"title": "cackling fiends library",
"description": "Because I'd like to have my own library :-)",
"author": "cackling fiend",