Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59d2c45ee3 | ||
|
|
68b4d0c444 | ||
|
|
ce885fb595 | ||
|
|
e6b2bbe154 | ||
|
|
48325fd78d |
6 changed files with 55 additions and 2 deletions
|
|
@ -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
|
Version: 1.2.0
|
||||||
Date: 14.12.2025
|
Date: 14.12.2025
|
||||||
Changes:
|
Changes:
|
||||||
|
|
|
||||||
|
|
@ -26,4 +26,21 @@ Entity.collisionBox = function(width, height, margin)
|
||||||
}
|
}
|
||||||
end
|
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
|
return Entity
|
||||||
|
|
@ -32,6 +32,7 @@ end
|
||||||
--- Applies the item to the game
|
--- Applies the item to the game
|
||||||
function Item:apply()
|
function Item:apply()
|
||||||
data:extend({ self.prototype })
|
data:extend({ self.prototype })
|
||||||
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Assigns data to the item
|
--- Assigns data to the item
|
||||||
|
|
@ -50,7 +51,7 @@ function Item:merge(data)
|
||||||
return self
|
return self
|
||||||
end
|
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
|
--- @param count number The amount of items that fit into a rocket
|
||||||
function Item:itemsPerRocket(count)
|
function Item:itemsPerRocket(count)
|
||||||
self.prototype.weight = (1000 / count) * kg
|
self.prototype.weight = (1000 / count) * kg
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ end
|
||||||
--- Applies the recipe to the game
|
--- Applies the recipe to the game
|
||||||
function Recipe:apply()
|
function Recipe:apply()
|
||||||
data:extend({ self.prototype })
|
data:extend({ self.prototype })
|
||||||
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Assigns data to the recipe
|
--- Assigns data to the recipe
|
||||||
|
|
@ -225,4 +226,26 @@ function Recipe:clone(name)
|
||||||
return Recipe:new(clone)
|
return Recipe:new(clone)
|
||||||
end
|
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
|
return Recipe
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ end
|
||||||
--- Applies the technology to the game
|
--- Applies the technology to the game
|
||||||
function Technology:apply()
|
function Technology:apply()
|
||||||
data:extend({ self.prototype })
|
data:extend({ self.prototype })
|
||||||
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Assigns data to the technology
|
--- Assigns data to the technology
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "cf-lib",
|
"name": "cf-lib",
|
||||||
"version": "1.2.0",
|
"version": "1.4.0",
|
||||||
"title": "cackling fiends library",
|
"title": "cackling fiends library",
|
||||||
"description": "Because I'd like to have my own library :-)",
|
"description": "Because I'd like to have my own library :-)",
|
||||||
"author": "cackling fiend",
|
"author": "cackling fiend",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue