added bots and roboports
After Width: | Height: | Size: 140 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 177 KiB |
After Width: | Height: | Size: 168 KiB |
After Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 171 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 194 KiB |
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 195 KiB |
After Width: | Height: | Size: 174 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 202 KiB |
After Width: | Height: | Size: 316 KiB |
After Width: | Height: | Size: 368 KiB |
After Width: | Height: | Size: 364 KiB |
After Width: | Height: | Size: 374 KiB |
After Width: | Height: | Size: 374 KiB |
After Width: | Height: | Size: 400 KiB |
After Width: | Height: | Size: 373 KiB |
After Width: | Height: | Size: 345 KiB |
After Width: | Height: | Size: 378 KiB |
After Width: | Height: | Size: 387 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.1 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/hr-roboport-base-2.png
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/hr-roboport-base-3.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/hr-roboport-base-4.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-base-2.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-base-3.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-base-4.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-01.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-02.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-03.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-04.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-05.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-06.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-07.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-08.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-09.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport-icon-10.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport_2.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport_3.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
snogard-re5dim/graphics/icon/roboport/roboport_4.png
Normal file
After Width: | Height: | Size: 17 KiB |
269
snogard-re5dim/prototypes/logistic/construction-robot.lua
Normal file
@ -0,0 +1,269 @@
|
||||
local QUANTITY = 10;
|
||||
|
||||
local base_name = "construction-robot";
|
||||
local base_entity = table.deepcopy(data.raw["construction-robot"][base_name]);
|
||||
local base_recipe = table.deepcopy(data.raw.recipe[base_name]);
|
||||
local base_item = table.deepcopy(data.raw.item[base_name]);
|
||||
local base_tech = table.deepcopy(data.raw.technology["construction-robotics"]);
|
||||
|
||||
local tech_count = 400;
|
||||
|
||||
|
||||
local base_speed = 0.06;
|
||||
local base_max_energy = 1.5;
|
||||
|
||||
local speed_increment = base_speed / 2;
|
||||
local max_energy_increment = base_max_energy / 2;
|
||||
|
||||
|
||||
|
||||
local sciencePacks = {
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
}
|
||||
|
||||
local prerequisites = {
|
||||
{
|
||||
"logistic-robotics",
|
||||
"construction-robotics"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-1",
|
||||
"5d-logistic-robot-1",
|
||||
"5d-roboport-2"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-2",
|
||||
"5d-logistic-robot-2",
|
||||
"5d-roboport-3",
|
||||
"chemical-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-3",
|
||||
"5d-logistic-robot-3",
|
||||
"5d-roboport-4"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-4",
|
||||
"5d-logistic-robot-4",
|
||||
"5d-roboport-5",
|
||||
"production-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-5",
|
||||
"5d-logistic-robot-5",
|
||||
"5d-roboport-6"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-6",
|
||||
"5d-logistic-robot-6",
|
||||
"5d-roboport-7",
|
||||
"utility-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-7",
|
||||
"5d-logistic-robot-7",
|
||||
"5d-roboport-8"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-8",
|
||||
"5d-logistic-robot-8",
|
||||
"5d-roboport-9"
|
||||
}
|
||||
}
|
||||
|
||||
local ingredients = {
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
}
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "item-subgroup",
|
||||
name = "5d-" .. base_name,
|
||||
group = "logistics",
|
||||
order = "e"
|
||||
},
|
||||
});
|
||||
|
||||
for i = 2, QUANTITY, 1 do
|
||||
local entity = table.deepcopy(base_entity);
|
||||
local name = "5d-" .. base_name .. "-0" .. i;
|
||||
if i >= 10 then
|
||||
name = "5d-" .. base_name .. "-" .. i;
|
||||
end
|
||||
table.assign(entity, {
|
||||
name = name,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
next_upgrade = "5d-" .. base_name .. "-0" .. (i + 1),
|
||||
fast_replaceable_group = base_name,
|
||||
speed = base_speed + speed_increment * (i - 1),
|
||||
max_energy = (base_max_energy + max_energy_increment * (i - 1)) .. "MJ",
|
||||
});
|
||||
entity.minable.result = name;
|
||||
|
||||
local number = "0" .. i;
|
||||
if i >= 10 then
|
||||
number = "" .. i;
|
||||
end
|
||||
|
||||
-- Idle
|
||||
entity.idle.filename =
|
||||
"__snogard-re5dim__/graphics/entities/construction-robot/construction-robot/construction-robot-" ..
|
||||
number .. ".png"
|
||||
-- Idle
|
||||
entity.in_motion.filename =
|
||||
"__snogard-re5dim__/graphics/entities/construction-robot/construction-robot/construction-robot-" ..
|
||||
number .. ".png"
|
||||
-- Working
|
||||
entity.working.filename =
|
||||
"__snogard-re5dim__/graphics/entities/construction-robot/construction-robot-working/construction-robot-working-" ..
|
||||
number .. ".png"
|
||||
|
||||
|
||||
local recipe = table.deepcopy(base_recipe);
|
||||
local final_ingredients = table.deepcopy(ingredients[i - 1]);
|
||||
table.insert(final_ingredients, { type = "item", name = "5d-" .. base_name .. "-0" .. (i - 1), amount = 1 });
|
||||
table.assign(recipe, {
|
||||
name = name,
|
||||
enabled = false,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
ingredients = final_ingredients,
|
||||
results = { { type = "item", name = name, amount = 1 } },
|
||||
})
|
||||
|
||||
if (i == 2) then
|
||||
table.assign(recipe, {
|
||||
ingredients = {
|
||||
{ type = "item", name = base_name, amount = 1 },
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 1 }
|
||||
},
|
||||
});
|
||||
end
|
||||
|
||||
-- set order on item(letters)
|
||||
local item = table.deepcopy(base_item);
|
||||
table.assign(item, {
|
||||
name = name,
|
||||
subgroup = "5d-" .. base_name,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
order = letters[i],
|
||||
place_result = name,
|
||||
|
||||
});
|
||||
|
||||
local tech = table.deepcopy(base_tech);
|
||||
|
||||
table.assign(tech, {
|
||||
name = "5d-construction-robot-" .. (i-1),
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
place_result = name,
|
||||
prerequisites = table.deepcopy(prerequisites[i - 1]),
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = name
|
||||
}
|
||||
},
|
||||
});
|
||||
tech.unit.count = tech_count * (i - 1);
|
||||
tech.unit.ingredients = table.deepcopy(sciencePacks[i - 1]);
|
||||
|
||||
data:extend({
|
||||
entity,
|
||||
item,
|
||||
recipe,
|
||||
tech
|
||||
});
|
||||
end
|
254
snogard-re5dim/prototypes/logistic/logistic-robot.lua
Normal file
@ -0,0 +1,254 @@
|
||||
local QUANTITY = 10;
|
||||
|
||||
local base_name = "logistic-robot";
|
||||
local base_entity = table.deepcopy(data.raw["logistic-robot"][base_name]);
|
||||
local base_recipe = table.deepcopy(data.raw.recipe[base_name]);
|
||||
local base_item = table.deepcopy(data.raw.item[base_name]);
|
||||
local base_tech = table.deepcopy(data.raw.technology["logistic-robotics"]);
|
||||
|
||||
local tech_count = 400;
|
||||
|
||||
|
||||
local base_speed = 0.05;
|
||||
local base_max_energy = 1.5;
|
||||
|
||||
local speed_increment = base_speed / 2;
|
||||
local max_energy_increment = base_max_energy / 2;
|
||||
|
||||
local sciencePacks = {
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
}
|
||||
|
||||
local prerequisites = {
|
||||
{
|
||||
"logistic-robotics",
|
||||
"construction-robotics"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-1",
|
||||
"5d-logistic-robot-1",
|
||||
"5d-roboport-2"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-2",
|
||||
"5d-logistic-robot-2",
|
||||
"5d-roboport-3",
|
||||
"chemical-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-3",
|
||||
"5d-logistic-robot-3",
|
||||
"5d-roboport-4"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-4",
|
||||
"5d-logistic-robot-4",
|
||||
"5d-roboport-5",
|
||||
"production-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-5",
|
||||
"5d-logistic-robot-5",
|
||||
"5d-roboport-6"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-6",
|
||||
"5d-logistic-robot-6",
|
||||
"5d-roboport-7",
|
||||
"utility-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-7",
|
||||
"5d-logistic-robot-7",
|
||||
"5d-roboport-8"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-8",
|
||||
"5d-logistic-robot-8",
|
||||
"5d-roboport-9"
|
||||
}
|
||||
}
|
||||
|
||||
local ingredients = {
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "processing-unit", amount = 1 }
|
||||
},
|
||||
}
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "item-subgroup",
|
||||
name = "5d-" .. base_name,
|
||||
group = "logistics",
|
||||
order = "e"
|
||||
},
|
||||
});
|
||||
|
||||
for i = 2, QUANTITY, 1 do
|
||||
local entity = table.deepcopy(base_entity);
|
||||
local name = "5d-" .. base_name .. "-0" .. i;
|
||||
if i >= 10 then
|
||||
name = "5d-" .. base_name .. "-" .. i;
|
||||
end
|
||||
table.assign(entity, {
|
||||
name = name,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
next_upgrade = "5d-" .. base_name .. "-0" .. (i + 1),
|
||||
fast_replaceable_group = base_name,
|
||||
speed = base_speed + speed_increment * (i - 1),
|
||||
max_energy = (base_max_energy + max_energy_increment * (i - 1)) .. "MJ",
|
||||
});
|
||||
entity.minable.result = name;
|
||||
|
||||
-- Idle
|
||||
entity.idle.filename = lib.getGraphics("entities", base_name, i);
|
||||
-- Idle
|
||||
entity.idle_with_cargo.filename = lib.getGraphics("entities", base_name, i);
|
||||
-- Idle
|
||||
entity.in_motion.filename = lib.getGraphics("entities", base_name, i);
|
||||
-- Idle
|
||||
entity.in_motion_with_cargo.filename = lib.getGraphics("entities", base_name, i);
|
||||
|
||||
|
||||
local recipe = table.deepcopy(base_recipe);
|
||||
local final_ingredients = table.deepcopy(ingredients[i - 1]);
|
||||
table.insert(final_ingredients, { type = "item", name = "5d-" .. base_name .. "-0" .. (i - 1), amount = 1 });
|
||||
table.assign(recipe, {
|
||||
name = name,
|
||||
enabled = false,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
ingredients = final_ingredients,
|
||||
results = { { type = "item", name = name, amount = 1 } },
|
||||
})
|
||||
|
||||
if (i == 2) then
|
||||
table.assign(recipe, {
|
||||
ingredients = {
|
||||
{ type = "item", name = base_name, amount = 1 },
|
||||
{ type = "item", name = "flying-robot-frame", amount = 1 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 1 }
|
||||
},
|
||||
});
|
||||
end
|
||||
|
||||
-- set order on item(letters)
|
||||
local item = table.deepcopy(base_item);
|
||||
table.assign(item, {
|
||||
name = name,
|
||||
subgroup = "5d-" .. base_name,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
order = letters[i],
|
||||
place_result = name,
|
||||
|
||||
});
|
||||
|
||||
local tech = table.deepcopy(base_tech);
|
||||
|
||||
table.assign(tech, {
|
||||
name = "5d-logistic-robot-" .. (i-1),
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
place_result = name,
|
||||
prerequisites = table.deepcopy(prerequisites[i - 1]),
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = name
|
||||
}
|
||||
},
|
||||
});
|
||||
tech.unit.count = tech_count * (i - 1);
|
||||
tech.unit.ingredients = table.deepcopy(sciencePacks[i - 1]);
|
||||
|
||||
data:extend({
|
||||
entity,
|
||||
item,
|
||||
recipe,
|
||||
tech
|
||||
});
|
||||
end
|
3
snogard-re5dim/prototypes/logistic/logistic.lua
Normal file
@ -0,0 +1,3 @@
|
||||
require("construction-robot");
|
||||
require("logistic-robot");
|
||||
require("roboport");
|
294
snogard-re5dim/prototypes/logistic/roboport.lua
Normal file
@ -0,0 +1,294 @@
|
||||
local QUANTITY = 10;
|
||||
|
||||
local base_name = "roboport";
|
||||
local base_entity = table.deepcopy(data.raw["roboport"][base_name]);
|
||||
local base_recipe = table.deepcopy(data.raw.recipe[base_name]);
|
||||
local base_item = table.deepcopy(data.raw.item[base_name]);
|
||||
local base_tech = table.deepcopy(data.raw.technology["logistic-robotics"]);
|
||||
|
||||
local tech_count = 450;
|
||||
|
||||
|
||||
local base_charging_speed = 1000;
|
||||
local base_energy_usage = 50;
|
||||
local base_buffer_capacity = 100;
|
||||
local base_flow = 5;
|
||||
local base_logistic_radius = 25;
|
||||
local base_construction_radius = 55;
|
||||
local base_robot_slots = 7;
|
||||
local base_recharge_minimum = 40;
|
||||
local base_recharge_slots = 4;
|
||||
|
||||
local charging_speed_increment = base_charging_speed / 2;
|
||||
local energy_usage_increment = base_energy_usage;
|
||||
local buffer_capacity_increment = base_buffer_capacity / 2;
|
||||
local flow_increment = 13; -- base_flow / 2;
|
||||
local logistic_radius_increment = base_logistic_radius / 2;
|
||||
local construction_radius_increment = (base_construction_radius - 5) / 2;
|
||||
local robot_slots_increment = 1;
|
||||
local recharge_minimum_increment = base_recharge_minimum / 2;
|
||||
local recharge_slots_increment = base_recharge_slots / 2;
|
||||
|
||||
|
||||
local sciencePacks = {
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
{
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "production-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
},
|
||||
}
|
||||
|
||||
local prerequisites = {
|
||||
|
||||
{
|
||||
"logistic-robotics",
|
||||
"construction-robotics"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-1",
|
||||
"5d-logistic-robot-1",
|
||||
"5d-roboport-1"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-2",
|
||||
"5d-logistic-robot-2",
|
||||
"5d-roboport-2",
|
||||
"chemical-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-3",
|
||||
"5d-logistic-robot-3",
|
||||
"5d-roboport-3"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-4",
|
||||
"5d-logistic-robot-4",
|
||||
"5d-roboport-4",
|
||||
"production-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-5",
|
||||
"5d-logistic-robot-5",
|
||||
"5d-roboport-5"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-6",
|
||||
"5d-logistic-robot-6",
|
||||
"5d-roboport-6",
|
||||
"utility-science-pack"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-7",
|
||||
"5d-logistic-robot-7",
|
||||
"5d-roboport-7"
|
||||
},
|
||||
{
|
||||
"5d-construction-robot-8",
|
||||
"5d-logistic-robot-8",
|
||||
"5d-roboport-8"
|
||||
}
|
||||
}
|
||||
|
||||
local ingredients = {
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
{
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
}
|
||||
}
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "item-subgroup",
|
||||
name = "5d-" .. base_name,
|
||||
group = "logistics",
|
||||
order = "e"
|
||||
},
|
||||
});
|
||||
|
||||
for i = 2, QUANTITY, 1 do
|
||||
local entity = table.deepcopy(base_entity);
|
||||
local name = "5d-" .. base_name .. "-0" .. i;
|
||||
if i >= 10 then
|
||||
name = "5d-" .. base_name .. "-" .. i;
|
||||
end
|
||||
table.assign(entity, {
|
||||
name = name,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
next_upgrade = "5d-" .. base_name .. "-0" .. (i + 1),
|
||||
charging_energy = (base_charging_speed + charging_speed_increment * (i - 1)) .. "kW",
|
||||
energy_usage = (base_energy_usage + energy_usage_increment * (i - 1)) .. "kW",
|
||||
logistics_radius = math.ceil(base_logistic_radius + logistic_radius_increment * (i - 1)),
|
||||
construction_radius = base_construction_radius + construction_radius_increment * (i - 1),
|
||||
robot_slots_count = base_robot_slots + math.floor(i / 3),
|
||||
recharge_minimum = (base_recharge_minimum + recharge_minimum_increment * (i - 1)) .. "MJ",
|
||||
charging_station_count = (base_recharge_slots + recharge_slots_increment * (i - 1)),
|
||||
});
|
||||
entity.energy_source.buffer_capacity = (base_buffer_capacity + buffer_capacity_increment * (i - 1)) .. "MJ";
|
||||
entity.energy_source.input_flow_limit = (base_flow + flow_increment * (i - 1)) .. "MW";
|
||||
entity.minable.result = name;
|
||||
|
||||
local number = "0" .. i;
|
||||
if i >= 10 then
|
||||
number = "" .. i;
|
||||
end
|
||||
|
||||
-- Base
|
||||
entity.base.layers[1].filename = "__snogard-re5dim__/graphics/entities/roboport/roboport-base/roboport-base-" ..
|
||||
number .. ".png"
|
||||
-- Base patch
|
||||
entity.base_patch.filename = "__snogard-re5dim__/graphics/entities/roboport/roboport-base-patch/roboport-base-patch-" ..
|
||||
number .. ".png"
|
||||
|
||||
if (i == QUANTITY) then
|
||||
table.assign(entity, {
|
||||
next_upgrade = nil,
|
||||
});
|
||||
end
|
||||
|
||||
local recipe = table.deepcopy(base_recipe);
|
||||
local final_ingredients = table.deepcopy(ingredients[i - 1]);
|
||||
table.insert(final_ingredients, { type = "item", name = "5d-" .. base_name .. "-0" .. (i - 1), amount = 1 });
|
||||
table.assign(recipe, {
|
||||
name = name,
|
||||
enabled = false,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
ingredients = final_ingredients,
|
||||
results = { { type = "item", name = name, amount = 1 } },
|
||||
})
|
||||
|
||||
if (i == 2) then
|
||||
table.assign(recipe, {
|
||||
ingredients = {
|
||||
{ type = "item", name = base_name, amount = 1 },
|
||||
{ type = "item", name = "steel-plate", amount = 45 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 45 },
|
||||
{ type = "item", name = "advanced-circuit", amount = 45 }
|
||||
},
|
||||
});
|
||||
end
|
||||
|
||||
-- set order on item(letters)
|
||||
local item = table.deepcopy(base_item);
|
||||
table.assign(item, {
|
||||
name = name,
|
||||
subgroup = "5d-" .. base_name,
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
order = letters[i],
|
||||
place_result = name,
|
||||
|
||||
});
|
||||
|
||||
local tech = table.deepcopy(base_tech);
|
||||
|
||||
table.assign(tech, {
|
||||
name = "5d-roboport-" .. (i - 1),
|
||||
icon_size = 64,
|
||||
icon = lib.getGraphics("icon", base_name, i),
|
||||
place_result = name,
|
||||
prerequisites = table.deepcopy(prerequisites[i - 1]),
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = name
|
||||
}
|
||||
},
|
||||
});
|
||||
tech.unit.count = tech_count * (i - 1);
|
||||
tech.unit.ingredients = table.deepcopy(sciencePacks[i - 1]);
|
||||
|
||||
data:extend({
|
||||
entity,
|
||||
item,
|
||||
recipe,
|
||||
tech
|
||||
});
|
||||
end
|
@ -1,2 +1,3 @@
|
||||
require("automation.automation");
|
||||
require("energy.energy");
|
||||
require("energy.energy");
|
||||
require("logistic.logistic");
|