Aleksei-bird 7c9c708c92 Первый фикс
Пачки некоторых позиций увеличены
2024-03-01 20:54:33 +03:00

88 lines
2.5 KiB
Lua

require "strings"
require "sprites"
function copyObject(category, name, newname)
log("Cloning object '" .. category .. "/" .. name .. "' into '" .. newname .. "'...")
local base = data.raw[category][name]
if not base then error("Object data.raw[" .. category .. "][" .. name .. "] does not exist!") end
local obj = table.deepcopy(base)
if obj.minable then
obj.minable.result = newname
end
if obj.mineable then
obj.mineable.result = newname
end
if obj.place_result then
obj.place_result = newname
end
if obj.result then
obj.result = newname
end
if obj.order then
obj.order = literalReplace(obj.order, "[" .. obj.name .. "]", "[" .. newname .. "]")
end
obj.name = newname
return obj
end
function createSignalOutput(modname, name, signalname)
local obj = copyObject("constant-combinator", "constant-combinator", name)
replaceSpritesDynamic(modname, "constant-combinator", obj)
local item = copyObject("item", "constant-combinator", name)
replaceSpritesDynamic(modname, "constant-combinator", item)
local signal = copyObject("virtual-signal", "signal-everything", signalname)
signal.icon = "__" .. modname .. "__/graphics/icons/" .. signalname .. ".png"
return {entity = obj, item = item, signal = signal}
end
local function createCircuitConnections()
local ret = {
shadow = {
red = {0.375, 0.5625},
green = {-0.125, 0.5625}
},
wire = {
red = {0.375, 0.15625},
green = {-0.125, 0.15625}
}
}
return ret
end
function createFixedSignalAnchor(name, spr)
local obj = copyObject("constant-combinator", "constant-combinator", name)
obj.sprites = {
north = createCircuitSprite(),
west = createCircuitSprite(),
east = createCircuitSprite(),
south = createCircuitSprite(),
}
obj.activity_led_sprites = {
north = createCircuitActivitySprite(),
west = createCircuitActivitySprite(),
east = createCircuitActivitySprite(),
south = createCircuitActivitySprite(),
}
obj.circuit_wire_connection_points = {
createCircuitConnections(),
createCircuitConnections(),
createCircuitConnections(),
createCircuitConnections(),
}
--obj.selectable_in_game = false
obj.destructible = false
obj.collision_box = nil
obj.max_health = 100
obj.collision_mask = nil
obj.minable = nil
obj.order = "z"
obj.flags = {"placeable-neutral", "player-creation", "not-on-map", "placeable-off-grid", "not-blueprintable", "not-deconstructable"}
obj.selection_priority = 254
return obj
end