mirror of
https://github.com/veden/Rampant.git
synced 2025-01-26 03:20:07 +02:00
figuring out approach for item collector
This commit is contained in:
parent
af74fb78bf
commit
7f7177e5fc
12
Upgrade.lua
12
Upgrade.lua
@ -16,7 +16,7 @@ local roundToNearest = mathUtils.roundToNearest
|
||||
|
||||
-- module code
|
||||
|
||||
function upgrade.attempt(natives)
|
||||
function upgrade.attempt(natives, world)
|
||||
local starting = global.version
|
||||
if (global.version == nil) then
|
||||
natives.squads = {}
|
||||
@ -158,11 +158,19 @@ function upgrade.attempt(natives)
|
||||
global.version = constants.VERSION_27
|
||||
end
|
||||
if (global.version < constants.VERSION_28) then
|
||||
|
||||
if (world == nil) then
|
||||
global.world = {}
|
||||
world = global.world
|
||||
end
|
||||
|
||||
world.itemCollectors = {}
|
||||
world.itemCollectorIndex = 1
|
||||
|
||||
game.surfaces[1].print("Rampant - Version 0.15.18")
|
||||
global.version = constants.VERSION_28
|
||||
end
|
||||
return starting ~= global.version
|
||||
return starting ~= global.version, natives, world
|
||||
end
|
||||
|
||||
function upgrade.compareTable(entities, option, new)
|
||||
|
43
control.lua
43
control.lua
@ -18,6 +18,7 @@ local upgrade = require("Upgrade")
|
||||
local baseRegisterUtils = require("libs/BaseRegisterUtils")
|
||||
local mathUtils = require("libs/MathUtils")
|
||||
local config = require("config")
|
||||
local worldProcessor = require("libs/WorldProcessor")
|
||||
|
||||
-- constants
|
||||
|
||||
@ -38,6 +39,8 @@ local getChunkByPosition = mapUtils.getChunkByPosition
|
||||
|
||||
local processPendingChunks = chunkProcessor.processPendingChunks
|
||||
|
||||
local processWorld = worldProcessor.processWorld
|
||||
|
||||
local processMap = mapProcessor.processMap
|
||||
local processPlayers = mapProcessor.processPlayers
|
||||
local scanMap = mapProcessor.scanMap
|
||||
@ -69,9 +72,10 @@ local mRandom = math.random
|
||||
|
||||
-- local references to global
|
||||
|
||||
local regionMap
|
||||
local natives
|
||||
local pendingChunks
|
||||
local regionMap -- manages the chunks that make up the game world
|
||||
local natives -- manages the enemy units, structures, and ai
|
||||
local pendingChunks -- chunks that have yet to be processed by the mod
|
||||
local world -- manages the player built structures and any other events in the world
|
||||
|
||||
-- hook functions
|
||||
|
||||
@ -109,6 +113,7 @@ local function onLoad()
|
||||
regionMap = global.regionMap
|
||||
natives = global.natives
|
||||
pendingChunks = global.pendingChunks
|
||||
world = global.world
|
||||
|
||||
hookEvents()
|
||||
end
|
||||
@ -130,8 +135,8 @@ local function rebuildRegionMap()
|
||||
global.regionMap = {}
|
||||
regionMap = global.regionMap
|
||||
regionMap.processQueue = {}
|
||||
regionMap.processPointer = 1
|
||||
regionMap.scanPointer = 1
|
||||
regionMap.processIndex = 1
|
||||
regionMap.scanIndex = 1
|
||||
-- preallocating memory to be used in code, making it fast by reducing garbage generated.
|
||||
regionMap.neighbors = { nil, nil, nil, nil, nil, nil, nil, nil }
|
||||
regionMap.cardinalNeighbors = { nil, nil, nil, nil }
|
||||
@ -215,7 +220,9 @@ local function onModSettingsChange(event)
|
||||
end
|
||||
|
||||
local function onConfigChanged()
|
||||
if upgrade.attempt(natives, regionMap) and onModSettingsChange(nil) then
|
||||
local upgraded
|
||||
upgraded, natives, world = upgrade.attempt(natives, world)
|
||||
if upgraded and onModSettingsChange(nil) then
|
||||
rebuildRegionMap()
|
||||
end
|
||||
end
|
||||
@ -241,6 +248,11 @@ local function onTick(event)
|
||||
|
||||
cleanSquads(natives)
|
||||
regroupSquads(natives)
|
||||
if (world == nil) then
|
||||
print("fucl")
|
||||
end
|
||||
|
||||
processWorld(surface, world, tick)
|
||||
|
||||
processPlayers(players, regionMap, surface, natives, tick)
|
||||
|
||||
@ -258,6 +270,17 @@ end
|
||||
|
||||
local function onBuild(event)
|
||||
local entity = event.created_entity
|
||||
print (entity.unit_number .. " " .. entity.name)
|
||||
if (entity.name == "steel-collector-overlay-rampant") then
|
||||
local position = entity.position
|
||||
local force = entity.force.name
|
||||
local surface = entity.surface
|
||||
entity.destroy()
|
||||
entity = surface.create_entity({position=position,
|
||||
force=force,
|
||||
name="steel-collector-rampant"})
|
||||
world.itemCollectors[#world.itemCollectors+1] = entity
|
||||
end
|
||||
addRemovePlayerEntity(regionMap, entity, natives, true, false)
|
||||
if natives.safeBuildings then
|
||||
if natives.safeEntities[entity.type] or natives.safeEntityName[entity.name] then
|
||||
@ -342,15 +365,21 @@ local function onInit()
|
||||
global.regionMap = {}
|
||||
global.pendingChunks = {}
|
||||
global.natives = {}
|
||||
global.world = {}
|
||||
|
||||
regionMap = global.regionMap
|
||||
natives = global.natives
|
||||
pendingChunks = global.pendingChunks
|
||||
world = global.world
|
||||
|
||||
onConfigChanged()
|
||||
hookEvents()
|
||||
end
|
||||
|
||||
local function onConfirmedBlueprint(event)
|
||||
print ("blueprint")
|
||||
end
|
||||
|
||||
-- hooks
|
||||
|
||||
script.on_init(onInit)
|
||||
@ -366,6 +395,8 @@ script.on_event(defines.events.on_biter_base_built,
|
||||
script.on_event({defines.events.on_preplayer_mined_item,
|
||||
defines.events.on_robot_pre_mined},
|
||||
onPickUp)
|
||||
script.on_event(defines.events.on_player_configured_blueprint,
|
||||
onConfirmedBlueprint)
|
||||
script.on_event({defines.events.on_built_entity,
|
||||
defines.events.on_robot_built_entity},
|
||||
onBuild)
|
||||
|
7
data.lua
7
data.lua
@ -9,3 +9,10 @@ require("prototypes/tile/fillableDirt")
|
||||
require("prototypes/enemies/UnitSuicideBiters")
|
||||
require("prototypes/enemies/UnitFireSpitters")
|
||||
require("prototypes/enemies/UnitTendril")
|
||||
|
||||
|
||||
if settings.startup["rampant-enableBuildings"].value then
|
||||
require("prototypes/buildings/ItemCollector")
|
||||
end
|
||||
|
||||
|
||||
|
BIN
gimps/chests/SteelCollector.xcf
Normal file
BIN
gimps/chests/SteelCollector.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/SteelCollectorOverlay.xcf
Normal file
BIN
gimps/chests/SteelCollectorOverlay.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/logisticActiveCollector.xcf
Normal file
BIN
gimps/chests/logisticActiveCollector.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/logisticActiveCollectorOverlay.xcf
Normal file
BIN
gimps/chests/logisticActiveCollectorOverlay.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/logisticPassiveCollector.xcf
Normal file
BIN
gimps/chests/logisticPassiveCollector.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/logisticPassiveCollectorOverlay.xcf
Normal file
BIN
gimps/chests/logisticPassiveCollectorOverlay.xcf
Normal file
Binary file not shown.
BIN
gimps/chests/logisticPassiveollector.xcf
Normal file
BIN
gimps/chests/logisticPassiveollector.xcf
Normal file
Binary file not shown.
BIN
graphics/entities/chest/logisticActiveCollector.png
Normal file
BIN
graphics/entities/chest/logisticActiveCollector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
BIN
graphics/entities/chest/logisticActiveCollectorOverlay.png
Normal file
BIN
graphics/entities/chest/logisticActiveCollectorOverlay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
graphics/entities/chest/logisticPassiveCollector.png
Normal file
BIN
graphics/entities/chest/logisticPassiveCollector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
BIN
graphics/entities/chest/logisticPassiveCollectorOverlay.png
Normal file
BIN
graphics/entities/chest/logisticPassiveCollectorOverlay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
graphics/entities/chest/steelCollector.png
Normal file
BIN
graphics/entities/chest/steelCollector.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
BIN
graphics/entities/chest/steelCollectorOverlay.png
Normal file
BIN
graphics/entities/chest/steelCollectorOverlay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name" : "Rampant",
|
||||
"factorio_version" : "0.15",
|
||||
"version" : "0.15.17",
|
||||
"version" : "0.15.18",
|
||||
"title" : "Rampant",
|
||||
"author" : "Veden",
|
||||
"homepage" : "https://forums.factorio.com/viewtopic.php?f=94&t=31445",
|
||||
|
@ -24,6 +24,7 @@ constants.RETREAT_MOVEMENT_PHEROMONE_LEVEL = 10000
|
||||
|
||||
constants.PROCESS_QUEUE_SIZE = 450
|
||||
constants.SCAN_QUEUE_SIZE = 6
|
||||
constants.ITEM_COLLECTOR_QUEUE_SIZE = 6
|
||||
constants.BASE_QUEUE_SIZE = 1
|
||||
constants.SQUAD_QUEUE_SIZE = 5
|
||||
constants.PROCESS_PLAYER_BOUND = 4
|
||||
@ -38,6 +39,10 @@ constants.PLAYER_PHEROMONE_MULTIPLER = 100
|
||||
|
||||
constants.DEV_CUSTOM_AI = false
|
||||
|
||||
-- item collector
|
||||
|
||||
constants.ITEM_COLLECTOR_DISTANCE = 48
|
||||
|
||||
-- chunk properties
|
||||
|
||||
constants.CHUNK_SIZE = 32
|
||||
|
@ -86,7 +86,7 @@ end
|
||||
--]]
|
||||
function mapProcessor.processMap(regionMap, surface, natives, tick)
|
||||
local roll = regionMap.processRoll
|
||||
local index = regionMap.processPointer
|
||||
local index = regionMap.processIndex
|
||||
|
||||
if (index == 1) then
|
||||
roll = mRandom()
|
||||
@ -115,9 +115,9 @@ function mapProcessor.processMap(regionMap, surface, natives, tick)
|
||||
end
|
||||
|
||||
if (endIndex == #processQueue) then
|
||||
regionMap.processPointer = 1
|
||||
regionMap.processIndex = 1
|
||||
else
|
||||
regionMap.processPointer = endIndex + 1
|
||||
regionMap.processIndex = endIndex + 1
|
||||
end
|
||||
end
|
||||
|
||||
@ -190,7 +190,7 @@ end
|
||||
Passive scan to find entities that have been generated outside the factorio event system
|
||||
--]]
|
||||
function mapProcessor.scanMap(regionMap, surface, natives)
|
||||
local index = regionMap.scanPointer
|
||||
local index = regionMap.scanIndex
|
||||
|
||||
local offset = {0, 0}
|
||||
local chunkBox = {false, offset}
|
||||
@ -254,9 +254,9 @@ function mapProcessor.scanMap(regionMap, surface, natives)
|
||||
end
|
||||
|
||||
if (endIndex == #processQueue) then
|
||||
regionMap.scanPointer = 1
|
||||
regionMap.scanIndex = 1
|
||||
else
|
||||
regionMap.scanPointer = endIndex + 1
|
||||
regionMap.scanIndex = endIndex + 1
|
||||
end
|
||||
end
|
||||
|
||||
|
65
libs/WorldProcessor.lua
Normal file
65
libs/WorldProcessor.lua
Normal file
@ -0,0 +1,65 @@
|
||||
local worldProcessor = {}
|
||||
|
||||
-- imports
|
||||
|
||||
local constants = require("Constants")
|
||||
|
||||
-- constants
|
||||
|
||||
local ITEM_COLLECTOR_DISTANCE = constants.ITEM_COLLECTOR_DISTANCE
|
||||
|
||||
local ITEM_COLLECTOR_QUEUE_SIZE = constants.ITEM_COLLECTOR_QUEUE_SIZE
|
||||
|
||||
-- imported functions
|
||||
|
||||
local mMin = math.min
|
||||
|
||||
-- module code
|
||||
|
||||
function worldProcessor.processWorld(surface, world, tick)
|
||||
local collectorIndex = world.itemCollectorIndex
|
||||
local collectors = world.itemCollectors
|
||||
|
||||
local topLeftPosition = {x = 0, y = 0}
|
||||
local bottomRightPosition = {x = 0, y = 0}
|
||||
local boundingArea = {topLeftPosition,
|
||||
bottomRightPosition}
|
||||
|
||||
print ("here")
|
||||
|
||||
local endIndex = mMin(collectorIndex+ITEM_COLLECTOR_QUEUE_SIZE, #collectors)
|
||||
for index = collectorIndex, endIndex do
|
||||
local itemCollector = collectors[index]
|
||||
|
||||
print ("Found Collector")
|
||||
|
||||
if itemCollector.valid then
|
||||
local collectorPosition = itemCollector.position
|
||||
|
||||
topLeftPosition.x = collectorPosition.x - ITEM_COLLECTOR_DISTANCE
|
||||
topLeftPosition.y = collectorPosition.y - ITEM_COLLECTOR_DISTANCE
|
||||
|
||||
bottomRightPosition.x = collectorPosition.x + ITEM_COLLECTOR_DISTANCE
|
||||
bottomRightPosition.y = collectorPosition.y + ITEM_COLLECTOR_DISTANCE
|
||||
|
||||
local items = surface.find_entities_filtered({area = boundingArea,
|
||||
name = "item-on-ground"})
|
||||
|
||||
if (#items > 0) then
|
||||
for x=1,#items do
|
||||
local item = items[x]
|
||||
item.destroy()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (endIndex == #collectors) then
|
||||
world.itemCollectorIndex = 1
|
||||
else
|
||||
world.itemCollectorIndex = endIndex + 1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return worldProcessor
|
4
make.rkt
4
make.rkt
@ -77,8 +77,8 @@
|
||||
(copyDirectory "prototypes" modFolder)))
|
||||
|
||||
(define (run)
|
||||
;; (copyFiles modFolder)
|
||||
(copyFiles modFolder)
|
||||
;; (copyFiles zipModFolder)
|
||||
(makeZip modFolder)
|
||||
;(makeZip modFolder)
|
||||
)
|
||||
)
|
||||
|
453
prototypes/buildings/ItemCollector.lua
Normal file
453
prototypes/buildings/ItemCollector.lua
Normal file
@ -0,0 +1,453 @@
|
||||
-- overlays
|
||||
|
||||
-- data:extend({
|
||||
|
||||
-- -- {
|
||||
-- -- type = "logistic-container",
|
||||
-- -- name = "logistic-collector-active-provider-overlay-rampant",
|
||||
-- -- icon = "__base__/graphics/icons/logistic-chest-active-provider.png",
|
||||
-- -- flags = {"placeable-player", "player-creation"},
|
||||
-- -- minable = {hardness = 0.2, mining_time = 0.5, result = "logistic-collector-active-provider-overlay-rampant"},
|
||||
-- -- max_health = 350,
|
||||
-- -- corpse = "small-remnants",
|
||||
-- -- collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
-- -- selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
-- -- resistances =
|
||||
-- -- {
|
||||
-- -- {
|
||||
-- -- type = "fire",
|
||||
-- -- percent = 90
|
||||
-- -- },
|
||||
-- -- {
|
||||
-- -- type = "impact",
|
||||
-- -- percent = 60
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- fast_replaceable_group = "container",
|
||||
-- -- inventory_size = 48,
|
||||
-- -- logistic_mode = "active-provider",
|
||||
-- -- open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
-- -- close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
-- -- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
-- -- picture =
|
||||
-- -- {
|
||||
-- -- filename = "__Rampant__/graphics/entities/chest/logisticActiveCollectorOverlay.png",
|
||||
-- -- priority = "extra-high",
|
||||
-- -- width = 1600,
|
||||
-- -- height = 1600,
|
||||
-- -- shift = {0.09375, 0}
|
||||
-- -- },
|
||||
-- -- circuit_wire_connection_point =
|
||||
-- -- {
|
||||
-- -- shadow =
|
||||
-- -- {
|
||||
-- -- red = {0.734375, 0.453125},
|
||||
-- -- green = {0.609375, 0.515625},
|
||||
-- -- },
|
||||
-- -- wire =
|
||||
-- -- {
|
||||
-- -- red = {0.40625, 0.21875},
|
||||
-- -- green = {0.40625, 0.375},
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- circuit_wire_max_distance = 9,
|
||||
-- -- circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
-- -- },
|
||||
|
||||
-- -- {
|
||||
-- -- type = "logistic-container",
|
||||
-- -- name = "logistic-collector-passive-provider-overlay-rampant",
|
||||
-- -- icon = "__base__/graphics/icons/logistic-chest-passive-provider.png",
|
||||
-- -- flags = {"placeable-player", "player-creation"},
|
||||
-- -- minable = {hardness = 0.2, mining_time = 0.5, result = "logistic-collector-passive-provider-overlay-rampant"},
|
||||
-- -- max_health = 350,
|
||||
-- -- corpse = "small-remnants",
|
||||
-- -- collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
-- -- selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
-- -- resistances =
|
||||
-- -- {
|
||||
-- -- {
|
||||
-- -- type = "fire",
|
||||
-- -- percent = 90
|
||||
-- -- },
|
||||
-- -- {
|
||||
-- -- type = "impact",
|
||||
-- -- percent = 60
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- fast_replaceable_group = "container",
|
||||
-- -- inventory_size = 48,
|
||||
-- -- logistic_mode = "active-provider",
|
||||
-- -- open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
-- -- close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
-- -- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
-- -- picture =
|
||||
-- -- {
|
||||
-- -- filename = "__Rampant__/graphics/entities/chest/logisticPassiveCollectorOverlay.png",
|
||||
-- -- priority = "extra-high",
|
||||
-- -- width = 1600,
|
||||
-- -- height = 1600,
|
||||
-- -- shift = {0.09375, 0}
|
||||
-- -- },
|
||||
-- -- circuit_wire_connection_point =
|
||||
-- -- {
|
||||
-- -- shadow =
|
||||
-- -- {
|
||||
-- -- red = {0.734375, 0.453125},
|
||||
-- -- green = {0.609375, 0.515625},
|
||||
-- -- },
|
||||
-- -- wire =
|
||||
-- -- {
|
||||
-- -- red = {0.40625, 0.21875},
|
||||
-- -- green = {0.40625, 0.375},
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- circuit_wire_max_distance = 9,
|
||||
-- -- circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
-- -- },
|
||||
|
||||
-- -- {
|
||||
-- -- type = "container",
|
||||
-- -- name = "steel-collector-overlay-rampant",
|
||||
-- -- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- -- flags = {"placeable-neutral", "player-creation"},
|
||||
-- -- minable = {mining_time = 1, result = "steel-collector-overlay-rampant"},
|
||||
-- -- max_health = 350,
|
||||
-- -- corpse = "small-remnants",
|
||||
-- -- open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
-- -- close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
-- -- resistances =
|
||||
-- -- {
|
||||
-- -- {
|
||||
-- -- type = "fire",
|
||||
-- -- percent = 90
|
||||
-- -- },
|
||||
-- -- {
|
||||
-- -- type = "impact",
|
||||
-- -- percent = 60
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
-- -- selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
-- -- fast_replaceable_group = "container",
|
||||
-- -- inventory_size = 48,
|
||||
-- -- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
-- -- picture =
|
||||
-- -- {
|
||||
-- -- filename = "__Rampant__/graphics/entities/chest/steelCollectorOverlay.png",
|
||||
-- -- priority = "extra-high",
|
||||
-- -- width = 1000,
|
||||
-- -- height = 1000,
|
||||
-- -- shift = {0.1875, 0}
|
||||
-- -- },
|
||||
-- -- circuit_wire_connection_point =
|
||||
-- -- {
|
||||
-- -- shadow =
|
||||
-- -- {
|
||||
-- -- red = {0.734375, 0.453125},
|
||||
-- -- green = {0.609375, 0.515625},
|
||||
-- -- },
|
||||
-- -- wire =
|
||||
-- -- {
|
||||
-- -- red = {0.40625, 0.21875},
|
||||
-- -- green = {0.40625, 0.375},
|
||||
-- -- }
|
||||
-- -- },
|
||||
-- -- circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
-- -- circuit_wire_max_distance = 9
|
||||
-- -- }
|
||||
-- })
|
||||
|
||||
-- entities
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "container",
|
||||
name = "steel-collector-rampant",
|
||||
icon = "__base__/graphics/icons/steel-chest.png",
|
||||
flags = {"placeable-neutral", "player-creation"},
|
||||
minable = {mining_time = 1, result = "steel-collector-overlay-rampant"},
|
||||
max_health = 350,
|
||||
corpse = "small-remnants",
|
||||
open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
resistances =
|
||||
{
|
||||
{
|
||||
type = "fire",
|
||||
percent = 90
|
||||
},
|
||||
{
|
||||
type = "impact",
|
||||
percent = 60
|
||||
}
|
||||
},
|
||||
collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
fast_replaceable_group = "container",
|
||||
inventory_size = 48,
|
||||
vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
picture =
|
||||
{
|
||||
filename = "__Rampant__/graphics/entities/chest/steelCollector.png",
|
||||
priority = "extra-high",
|
||||
width = 48,
|
||||
height = 34,
|
||||
shift = {0.1875, 0}
|
||||
},
|
||||
circuit_wire_connection_point =
|
||||
{
|
||||
shadow =
|
||||
{
|
||||
red = {0.734375, 0.453125},
|
||||
green = {0.609375, 0.515625},
|
||||
},
|
||||
wire =
|
||||
{
|
||||
red = {0.40625, 0.21875},
|
||||
green = {0.40625, 0.375},
|
||||
}
|
||||
},
|
||||
circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
circuit_wire_max_distance = 9
|
||||
},
|
||||
|
||||
-- {
|
||||
-- type = "logistic-container",
|
||||
-- name = "logistic-collector-passive-provider-rampant",
|
||||
-- icon = "__base__/graphics/icons/logistic-chest-passive-provider.png",
|
||||
-- flags = {"placeable-player", "player-creation"},
|
||||
-- minable = {hardness = 0.2, mining_time = 0.5, result = "logistic-collector-passive-provider-rampant"},
|
||||
-- max_health = 350,
|
||||
-- corpse = "small-remnants",
|
||||
-- collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
-- selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
-- resistances =
|
||||
-- {
|
||||
-- {
|
||||
-- type = "fire",
|
||||
-- percent = 90
|
||||
-- },
|
||||
-- {
|
||||
-- type = "impact",
|
||||
-- percent = 60
|
||||
-- }
|
||||
-- },
|
||||
-- fast_replaceable_group = "container",
|
||||
-- inventory_size = 48,
|
||||
-- logistic_mode = "passive-provider",
|
||||
-- open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
-- close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
-- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
-- picture =
|
||||
-- {
|
||||
-- filename = "__Rampant__/graphics/entities/chest/logisticPassiveCollector.png",
|
||||
-- priority = "extra-high",
|
||||
-- width = 38,
|
||||
-- height = 32,
|
||||
-- shift = {0.09375, 0}
|
||||
-- },
|
||||
-- circuit_wire_connection_point =
|
||||
-- {
|
||||
-- shadow =
|
||||
-- {
|
||||
-- red = {0.734375, 0.453125},
|
||||
-- green = {0.609375, 0.515625},
|
||||
-- },
|
||||
-- wire =
|
||||
-- {
|
||||
-- red = {0.40625, 0.21875},
|
||||
-- green = {0.40625, 0.375},
|
||||
-- }
|
||||
-- },
|
||||
-- circuit_wire_max_distance = 9,
|
||||
-- circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
-- },
|
||||
|
||||
-- {
|
||||
-- type = "logistic-container",
|
||||
-- name = "logistic-collector-active-provider-rampant",
|
||||
-- icon = "__base__/graphics/icons/logistic-chest-active-provider.png",
|
||||
-- flags = {"placeable-player", "player-creation"},
|
||||
-- minable = {hardness = 0.2, mining_time = 0.5, result = "logistic-collector-active-provider-overlay-rampant"},
|
||||
-- max_health = 350,
|
||||
-- corpse = "small-remnants",
|
||||
-- collision_box = {{-0.35, -0.35}, {0.35, 0.35}},
|
||||
-- selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
|
||||
-- resistances =
|
||||
-- {
|
||||
-- {
|
||||
-- type = "fire",
|
||||
-- percent = 90
|
||||
-- },
|
||||
-- {
|
||||
-- type = "impact",
|
||||
-- percent = 60
|
||||
-- }
|
||||
-- },
|
||||
-- fast_replaceable_group = "container",
|
||||
-- inventory_size = 48,
|
||||
-- logistic_mode = "active-provider",
|
||||
-- open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 },
|
||||
-- close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 },
|
||||
-- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
|
||||
-- picture =
|
||||
-- {
|
||||
-- filename = "__Rampant__/graphics/entities/chest/logisticActiveCollector.png",
|
||||
-- priority = "extra-high",
|
||||
-- width = 38,
|
||||
-- height = 32,
|
||||
-- shift = {0.09375, 0}
|
||||
-- },
|
||||
-- circuit_wire_connection_point =
|
||||
-- {
|
||||
-- shadow =
|
||||
-- {
|
||||
-- red = {0.734375, 0.453125},
|
||||
-- green = {0.609375, 0.515625},
|
||||
-- },
|
||||
-- wire =
|
||||
-- {
|
||||
-- red = {0.40625, 0.21875},
|
||||
-- green = {0.40625, 0.375},
|
||||
-- }
|
||||
-- },
|
||||
-- circuit_wire_max_distance = 9,
|
||||
-- circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),
|
||||
-- }
|
||||
|
||||
})
|
||||
|
||||
-- recipes
|
||||
|
||||
data:extend({
|
||||
|
||||
-- {
|
||||
-- type = "recipe",
|
||||
-- name = "logistic-collector-active-provider-rampant",
|
||||
-- enabled = false,
|
||||
-- ingredients = {
|
||||
-- {"steel-chest", 1},
|
||||
-- {"electronic-circuit", 3},
|
||||
-- {"advanced-circuit", 1}
|
||||
-- },
|
||||
-- result = "logistic-collector-active-provider-overlay-rampant",
|
||||
-- requester_paste_multiplier = 4
|
||||
-- },
|
||||
|
||||
{
|
||||
type = "recipe",
|
||||
name = "steel-collector-rampant",
|
||||
enabled = false,
|
||||
ingredients = {{"steel-plate", 8}},
|
||||
result = "steel-collector-rampant",
|
||||
requester_paste_multiplier = 4
|
||||
},
|
||||
|
||||
-- {
|
||||
-- type = "recipe",
|
||||
-- name = "logistic-collector-passive-provider-rampant",
|
||||
-- enabled = false,
|
||||
-- ingredients = {
|
||||
-- {"steel-chest", 1},
|
||||
-- {"electronic-circuit", 3},
|
||||
-- {"advanced-circuit", 1}
|
||||
-- },
|
||||
-- result = "logistic-collector-passive-provider-overlay-rampant",
|
||||
-- requester_paste_multiplier = 4
|
||||
-- }
|
||||
})
|
||||
|
||||
-- items
|
||||
|
||||
data:extend({
|
||||
|
||||
-- {
|
||||
-- type = "item",
|
||||
-- name = "steel-collector-overlay-rampant",
|
||||
-- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- flags = {"goes-to-quickbar"},
|
||||
-- subgroup = "storage",
|
||||
-- order = "a[items]-c[steel-collector]",
|
||||
-- place_result = "steel-collector-overlay-rampant",
|
||||
-- stack_size = 50
|
||||
-- },
|
||||
|
||||
-- {
|
||||
-- type = "item",
|
||||
-- name = "logistic-collector-passive-provider-overlay-rampant",
|
||||
-- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- flags = {"goes-to-quickbar"},
|
||||
-- subgroup = "storage",
|
||||
-- order = "a[items]-c[logistic-collector-passive-provider]",
|
||||
-- place_result = "logistic-collector-passive-provider-overlay-rampant",
|
||||
-- stack_size = 50
|
||||
-- },
|
||||
|
||||
-- {
|
||||
-- type = "item",
|
||||
-- name = "logistic-collector-active-provider-overlay-rampant",
|
||||
-- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- flags = {"goes-to-quickbar"},
|
||||
-- subgroup = "storage",
|
||||
-- order = "a[items]-c[logistic-collector-active-provider]",
|
||||
-- place_result = "logistic-collector-active-provider-overlay-rampant",
|
||||
-- stack_size = 50
|
||||
-- },
|
||||
|
||||
{
|
||||
type = "item",
|
||||
name = "steel-collector-rampant",
|
||||
icon = "__base__/graphics/icons/steel-chest.png",
|
||||
flags = {"goes-to-quickbar"},
|
||||
subgroup = "storage",
|
||||
order = "a[items]-c[steel-collector]",
|
||||
place_result = "steel-collector-rampant",
|
||||
stack_size = 50
|
||||
}-- ,
|
||||
|
||||
-- {
|
||||
-- type = "item",
|
||||
-- name = "logistic-collector-passive-provider-rampant",
|
||||
-- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- flags = {"goes-to-quickbar"},
|
||||
-- subgroup = "storage",
|
||||
-- order = "a[items]-c[logistic-collector-passive-provider]",
|
||||
-- place_result = "logistic-collector-passive-provider-rampant",
|
||||
-- stack_size = 50
|
||||
-- },
|
||||
|
||||
-- {
|
||||
-- type = "item",
|
||||
-- name = "logistic-collector-active-provider-rampant",
|
||||
-- icon = "__base__/graphics/icons/steel-chest.png",
|
||||
-- flags = {"goes-to-quickbar"},
|
||||
-- subgroup = "storage",
|
||||
-- order = "a[items]-c[logistic-collector-active-provider]",
|
||||
-- place_result = "logistic-collector-active-provider-rampant",
|
||||
-- stack_size = 50
|
||||
-- }
|
||||
})
|
||||
|
||||
-- technology insertions
|
||||
|
||||
table.insert(data.raw.technology["steel-processing"].effects,
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "steel-collector-rampant"
|
||||
|
||||
})
|
||||
|
||||
-- table.insert(data.raw.technology["steel-processing"].effects,
|
||||
-- {
|
||||
-- type = "unlock-recipe",
|
||||
-- recipe = "logistic-collector-passive-provider-rampant"
|
||||
|
||||
-- })
|
||||
|
||||
-- table.insert(data.raw.technology["steel-processing"].effects,
|
||||
-- {
|
||||
-- type = "unlock-recipe",
|
||||
-- recipe = "logistic-collector-active-provider-rampant"
|
||||
|
||||
-- })
|
13
settings.lua
13
settings.lua
@ -192,10 +192,19 @@ data:extend({
|
||||
default_value = true,
|
||||
order = "h[modifier]-a[optimize]",
|
||||
per_user = false
|
||||
}
|
||||
-- ,
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "rampant-enableBuildings",
|
||||
description = "rampant-enableBuildings",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "i[modifier]-a[buildings]",
|
||||
per_user = false
|
||||
}
|
||||
|
||||
-- {
|
||||
-- type = "bool-setting",
|
||||
-- name = "rampant-reduceAnimations",
|
||||
|
Loading…
x
Reference in New Issue
Block a user