From 95864cd4a3e3e2acd1c62b914108b2dce9692897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Doubravsk=C3=BD?= Date: Sun, 19 Apr 2026 10:30:47 +0200 Subject: [PATCH] Initial commit --- .gitignore | 2 + CHANGELOG.md | 13 ++ MoreMachineryMod/data.lua | 172 ++++++++++++++++++++++++++ MoreMachineryMod/info.json | 9 ++ MoreMachineryMod/locale/cs/locale.cfg | 29 +++++ MoreMachineryMod/locale/en/locale.cfg | 35 ++++++ README.md | 25 ++++ 7 files changed, 285 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 MoreMachineryMod/data.lua create mode 100644 MoreMachineryMod/info.json create mode 100644 MoreMachineryMod/locale/cs/locale.cfg create mode 100644 MoreMachineryMod/locale/en/locale.cfg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0108928 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +deploy.sh +DESIGN_DOCUMENT_FACTORIO_MOD.md \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1bdf40e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +## [1.0.1] - 2026-04-19 + +### Opraveno +- Rotace Fluid Pumpjacku nyní správně přesouvá výstupní potrubí na odpovídající stranu entity (`Animation4Way`) + +## [1.0.0] - 2026-04-19 + +### Přidáno +- Fluid Pumpjack — konfigurovatelná pumpa produkující libovolnou kapalinu výběrem receptu +- Podpora Space Age DLC kapalin (ammonia, fluorine, holmium-solution, lithium-brine, lava, molten-iron, molten-copper, thruster-fuel, thruster-oxidizer, ammoniacal-solution) +- Lokalizace EN a CS diff --git a/MoreMachineryMod/data.lua b/MoreMachineryMod/data.lua new file mode 100644 index 0000000..d191c11 --- /dev/null +++ b/MoreMachineryMod/data.lua @@ -0,0 +1,172 @@ +local base_fluids = { + "water", "steam", "sulfuric-acid", + "crude-oil", "heavy-oil", "light-oil", "petroleum-gas", "lubricant" +} + +local space_age_fluids = { + "ammonia", "fluorine", "holmium-solution", "lithium-brine", + "lava", "molten-iron", "molten-copper", + "thruster-fuel", "thruster-oxidizer", "ammoniacal-solution" +} + +data:extend({ + { + type = "recipe-category", + name = "fluid-pumpjack-production" + }, + { + type = "item-subgroup", + name = "fluid-pumpjack-fluids", + group = "production", + order = "z[fluid-pumpjack]" + } +}) + +data:extend({ + { + type = "assembling-machine", + name = "fluid-pumpjack", + icon = "__base__/graphics/icons/pumpjack.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "fluid-pumpjack"}, + max_health = 200, + corpse = "pumpjack-remnants", + dying_explosion = "pumpjack-explosion", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + drawing_box_vertical_extension = 1, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = {pollution = 10} + }, + energy_usage = "90kW", + crafting_speed = 1, + crafting_categories = {"fluid-pumpjack-production"}, + module_slots = 2, + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + fluid_boxes_off_when_no_fluid_recipe = true, + fluid_boxes = { + { + production_type = "output", + pipe_covers = pipecoverspictures(), + volume = 1000, + pipe_connections = {{ + flow_direction = "output", + direction = defines.direction.north, + position = {1, -1} + }} + } + }, + graphics_set = { + animation = { + north = { + layers = { + { + filename = "__base__/graphics/entity/pumpjack/pumpjack-base.png", + priority = "extra-high", + width = 261, + height = 273, + frame_count = 1, + repeat_count = 40, + shift = util.by_pixel(-2.25, -4.75), + scale = 0.5, + tint = {r = 0.75, g = 0.88, b = 1.0, a = 1.0} + }, + { + filename = "__base__/graphics/entity/pumpjack/pumpjack-base-shadow.png", + width = 220, + height = 220, + frame_count = 1, + repeat_count = 40, + draw_as_shadow = true, + shift = util.by_pixel(6, 0.5), + scale = 0.5 + }, + { + priority = "high", + filename = "__base__/graphics/entity/pumpjack/pumpjack-horsehead.png", + animation_speed = 0.5, + line_length = 8, + width = 206, + height = 202, + frame_count = 40, + shift = util.by_pixel(-4, -24), + scale = 0.5, + tint = {r = 0.75, g = 0.88, b = 1.0, a = 1.0} + }, + { + priority = "high", + filename = "__base__/graphics/entity/pumpjack/pumpjack-horsehead-shadow.png", + animation_speed = 0.5, + draw_as_shadow = true, + line_length = 8, + width = 309, + height = 82, + frame_count = 40, + shift = util.by_pixel(17.75, 14.5), + scale = 0.5 + } + } + } + } + }, + open_sound = {filename = "__base__/sound/open-close/pumpjack-open.ogg", volume = 0.5}, + close_sound = {filename = "__base__/sound/open-close/pumpjack-close.ogg", volume = 0.5}, + working_sound = { + sound = {filename = "__base__/sound/pumpjack.ogg", volume = 0.7, audible_distance_modifier = 0.6}, + fade_in_ticks = 4, + fade_out_ticks = 10 + } + } +}) + +data:extend({ + { + type = "item", + name = "fluid-pumpjack", + icon = "__base__/graphics/icons/pumpjack.png", + subgroup = "extraction-machine", + order = "b[fluid-extraction]-b[fluid-pumpjack]", + place_result = "fluid-pumpjack", + stack_size = 5 + } +}) + +data:extend({ + { + type = "recipe", + name = "fluid-pumpjack", + enabled = true, + ingredients = { + {type = "item", name = "pumpjack", amount = 1}, + {type = "item", name = "electronic-circuit", amount = 10}, + {type = "item", name = "pipe", amount = 20} + }, + results = {{type = "item", name = "fluid-pumpjack", amount = 1}} + } +}) + +local function make_fluid_recipe(fluid_name, order_index) + return { + type = "recipe", + name = "fluid-pumpjack-produce-" .. fluid_name, + category = "fluid-pumpjack-production", + energy_required = 1, + ingredients = {}, + results = {{type = "fluid", name = fluid_name, amount = 10}}, + enabled = true, + subgroup = "fluid-pumpjack-fluids", + order = string.format("%03d", order_index) .. "-" .. fluid_name + } +end + +for i, fluid in ipairs(base_fluids) do + data:extend({make_fluid_recipe(fluid, i)}) +end + +if mods["space-age"] then + for i, fluid in ipairs(space_age_fluids) do + data:extend({make_fluid_recipe(fluid, #base_fluids + i)}) + end +end diff --git a/MoreMachineryMod/info.json b/MoreMachineryMod/info.json new file mode 100644 index 0000000..53b816c --- /dev/null +++ b/MoreMachineryMod/info.json @@ -0,0 +1,9 @@ +{ + "name": "MoreMachineryMod", + "version": "1.0.1", + "title": "More Machinery Mod", + "author": "player", + "description": "Adds configurable machines to Factorio. Currently includes a Fluid Pumpjack that can produce any fluid via recipe selection.", + "factorio_version": "2.0", + "dependencies": ["base", "? space-age"] +} diff --git a/MoreMachineryMod/locale/cs/locale.cfg b/MoreMachineryMod/locale/cs/locale.cfg new file mode 100644 index 0000000..d3739a3 --- /dev/null +++ b/MoreMachineryMod/locale/cs/locale.cfg @@ -0,0 +1,29 @@ +[entity-name] +fluid-pumpjack=Konfigurovatelná ropná pumpa + +[entity-description] +fluid-pumpjack=Konfigurovatelná ropná pumpa. Vyber recept pro volbu produkované kapaliny (10 jednotek/sec). + +[item-name] +fluid-pumpjack=Konfigurovatelná ropná pumpa + +[recipe-name] +fluid-pumpjack=Konfigurovatelná ropná pumpa +fluid-pumpjack-produce-water=Produkovat vodu +fluid-pumpjack-produce-steam=Produkovat páru +fluid-pumpjack-produce-sulfuric-acid=Produkovat kyselinu sírovou +fluid-pumpjack-produce-crude-oil=Produkovat ropu +fluid-pumpjack-produce-heavy-oil=Produkovat těžký olej +fluid-pumpjack-produce-light-oil=Produkovat lehký olej +fluid-pumpjack-produce-petroleum-gas=Produkovat petrolej +fluid-pumpjack-produce-lubricant=Produkovat mazivo +fluid-pumpjack-produce-ammonia=Produkovat amoniak +fluid-pumpjack-produce-fluorine=Produkovat fluor +fluid-pumpjack-produce-holmium-solution=Produkovat holmiový roztok +fluid-pumpjack-produce-lithium-brine=Produkovat lithiovou solanku +fluid-pumpjack-produce-lava=Produkovat lávu +fluid-pumpjack-produce-molten-iron=Produkovat tekuté železo +fluid-pumpjack-produce-molten-copper=Produkovat tekutou měď +fluid-pumpjack-produce-thruster-fuel=Produkovat tryskové palivo +fluid-pumpjack-produce-thruster-oxidizer=Produkovat tryskový oxidant +fluid-pumpjack-produce-ammoniacal-solution=Produkovat amoniakální roztok diff --git a/MoreMachineryMod/locale/en/locale.cfg b/MoreMachineryMod/locale/en/locale.cfg new file mode 100644 index 0000000..2003074 --- /dev/null +++ b/MoreMachineryMod/locale/en/locale.cfg @@ -0,0 +1,35 @@ +[entity-name] +fluid-pumpjack=Fluid Pumpjack + +[entity-description] +fluid-pumpjack=A configurable pumpjack. Select a recipe to choose which fluid it produces (10 units/sec). + +[item-name] +fluid-pumpjack=Fluid Pumpjack + +[recipe-name] +fluid-pumpjack=Fluid Pumpjack +fluid-pumpjack-produce-water=Produce Water +fluid-pumpjack-produce-steam=Produce Steam +fluid-pumpjack-produce-sulfuric-acid=Produce Sulfuric Acid +fluid-pumpjack-produce-crude-oil=Produce Crude Oil +fluid-pumpjack-produce-heavy-oil=Produce Heavy Oil +fluid-pumpjack-produce-light-oil=Produce Light Oil +fluid-pumpjack-produce-petroleum-gas=Produce Petroleum Gas +fluid-pumpjack-produce-lubricant=Produce Lubricant +fluid-pumpjack-produce-ammonia=Produce Ammonia +fluid-pumpjack-produce-fluorine=Produce Fluorine +fluid-pumpjack-produce-holmium-solution=Produce Holmium Solution +fluid-pumpjack-produce-lithium-brine=Produce Lithium Brine +fluid-pumpjack-produce-lava=Produce Lava +fluid-pumpjack-produce-molten-iron=Produce Molten Iron +fluid-pumpjack-produce-molten-copper=Produce Molten Copper +fluid-pumpjack-produce-thruster-fuel=Produce Thruster Fuel +fluid-pumpjack-produce-thruster-oxidizer=Produce Thruster Oxidizer +fluid-pumpjack-produce-ammoniacal-solution=Produce Ammoniacal Solution + +[technology-name] +fluid-pumpjack=Fluid Pumpjack + +[technology-description] +fluid-pumpjack=Unlocks the Fluid Pumpjack, a configurable machine that can produce any fluid. diff --git a/README.md b/README.md index cebbed5..c648cfe 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,27 @@ # MoreMachineryMod +Factorio mod přidávající konfigurovatelné stroje. Kompatibilní s Factorio 2.0 a Space Age DLC. + +## Obsah modu + +### Fluid Pumpjack +Konfigurovatelná ropná pumpa — vypadá jako vanilkový pumpjack, ale hráč si může vybrat jakou kapalinu bude produkovat výběrem receptu v GUI stroje. + +- Produkuje 10 jednotek kapaliny za sekundu +- Spotřebuje 90 kW elektřiny +- Podporuje 2 moduly (speed, productivity, efficiency) +- Výstupní potrubí se posouvá podle rotace stroje +- S nainstalovaným Space Age DLC přidá i kapaliny z rozšíření + +**Recept:** 1× Pumpjack + 10× Electronic Circuit + 20× Pipe + +## Instalace + +Zkopíruj složku `MoreMachineryMod` do: +- **Windows:** `%APPDATA%\Factorio\mods\` +- **Linux:** `~/.factorio/mods/` + +## Verze + +- `1.0.1` — Opravena rotace výstupního potrubí +- `1.0.0` — Fluid Pumpjack