Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion cluster/local/create_docker_compose_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ def generate_compose_config(num_instances: int) -> Dict[str, Any]:
"type": "bind",
"source": "../scenarios/default_lab_scenario",
"target": "/opt/factorio/scenarios/default_lab_scenario"
},
{
"type": "bind",
"source": "~/Applications/Factorio.app/Contents/Resources/mods",
"target": "/opt/factorio/mods"
}
],
"ports": [
Expand Down Expand Up @@ -81,7 +86,7 @@ def setup_docker_compose(num_instances: int):
time.sleep(10)

if __name__ == "__main__":
num_instances = 4
num_instances = 8
if len(sys.argv) != 2:
print("Usage: python create_docker_compose_config.py <number_of_instances>")
else:
Expand Down
281 changes: 281 additions & 0 deletions cluster/local/docker-compose-8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
services:
factorio_0:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34197:34197/udp
- 27015:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_1:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34198:34197/udp
- 27016:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_2:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34199:34197/udp
- 27017:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_3:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34200:34197/udp
- 27018:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_4:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34201:34197/udp
- 27019:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_5:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34202:34197/udp
- 27020:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_6:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34203:34197/udp
- 27021:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
factorio_7:
command: /opt/factorio/bin/x64/factorio --start-server-load-scenario default_lab_scenario
--port 34197 --server-settings /opt/factorio/config/server-settings.json --map-gen-settings
/opt/factorio/config/map-gen-settings.json --map-settings /opt/factorio/config/map-settings.json
--server-banlist /opt/factorio/config/server-banlist.json --rcon-port 27015
--rcon-password "factorio" --server-whitelist /opt/factorio/config/server-whitelist.json
--use-server-whitelist --server-adminlist /opt/factorio/config/server-adminlist.json
--mod-directory /opt/factorio/mods
deploy:
resources:
limits:
cpus: '1'
memory: 1024m
entrypoint: []
environment:
- SAVES=/opt/factorio/saves
- CONFIG=/opt/factorio/config
- MODS=/opt/factorio/mods
- SCENARIOS=/opt/factorio/scenarios
- PORT=34197
- RCON_PORT=27015
image: factorio:latest
platform: linux/amd64
ports:
- 34204:34197/udp
- 27022:27015/tcp
restart: unless-stopped
user: factorio
volumes:
- source: ../scenarios/default_lab_scenario
target: /opt/factorio/scenarios/default_lab_scenario
type: bind
- source: ~/Applications/Factorio.app/Contents/Resources/mods
target: /opt/factorio/mods
type: bind
16 changes: 12 additions & 4 deletions src/actions/connect_entities.lua
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,21 @@ local function are_fluidboxes_connected(entity1, entity2)
end

local function is_placeable(position)
--local tile = game.surfaces[1].get_tile(position.x, position.y)
--return tile.collides_with('player-layer') == false
-- Check if the tile is water or other impassable tiles
local invalid_tiles = {
["water"] = true,
["deepwater"] = true,
["water-green"] = true,
["deepwater-green"] = true,
["water-shallow"] = true,
["water-mud"] = true,
}

local entities = game.surfaces[1].find_entities_filtered{
position = position,
collision_mask = "player-layer"
}
return #entities == 0
return #entities == 0 and not invalid_tiles[game.surfaces[1].get_tile(position.x, position.y).name]
end

local function find_placeable_neighbor(pos, previous_pos)
Expand Down Expand Up @@ -485,7 +493,7 @@ global.actions.connect_entities = function(player_index, source_x, source_y, tar
game.print("Required count: " .. required_count)
game.print("Available count: " .. number_of_connection_entities)
if number_of_connection_entities < required_count then
error("Player does not have enough " .. connection_type .. " in their inventory to complete this connection. Required number: " .. required_count .. ", Available in inventory: " .. number_of_connection_entities)
error("\"Player does not have enough " .. connection_type .. " in their inventory to complete this connection. Required number: " .. required_count .. ", Available in inventory: " .. number_of_connection_entities.."\"")
end
result = connect_entities(player_index, source_x, source_y, target_x, target_y, path_handle, connection_type, false)
end
Expand Down
Loading