move lua to src/generated, and tweak IntelliJ 'mark as excluded/src'
This commit is contained in:
parent
db4350a927
commit
a381e01886
23 changed files with 31 additions and 19 deletions
|
|
@ -0,0 +1,248 @@
|
|||
local ____lualib = require("lualib_bundle")
|
||||
local Map = ____lualib.Map
|
||||
local __TS__Iterator = ____lualib.__TS__Iterator
|
||||
local __TS__New = ____lualib.__TS__New
|
||||
local ____exports = {}
|
||||
local mapTilesUpdateDebounce, getTiles, getSurface, groupTiles, handleBuiltTileEvent, handleMinedTileEvent, Type
|
||||
local ____eventTypeCheck = require("main.events.eventTypeCheck")
|
||||
local isEventType = ____eventTypeCheck.isEventType
|
||||
local ____converters = require("main.events.converters")
|
||||
local Converters = ____converters.Converters
|
||||
local ____EventDataCache = require("main.cache.EventDataCache")
|
||||
local EventUpdatesManager = ____EventDataCache.default
|
||||
local ____kafkatorio_2Dschema = require("generated.kafkatorio-schema")
|
||||
local KafkatorioPacketData = ____kafkatorio_2Dschema.KafkatorioPacketData
|
||||
function mapTilesUpdateDebounce(surface, chunkPosition, tiles, event, updater, expirationDurationTicks)
|
||||
if surface == nil then
|
||||
return
|
||||
end
|
||||
local eventName = Converters.eventNameString(event.name)
|
||||
local key = {surfaceIndex = surface.index, chunkPosition = chunkPosition}
|
||||
EventUpdatesManager:debounce(
|
||||
key,
|
||||
Type.MapChunkUpdate,
|
||||
function(data)
|
||||
if data.tileDictionary == nil then
|
||||
data.tileDictionary = {tilesXY = {}, protos = {}}
|
||||
end
|
||||
local protosCount = table_size(data.tileDictionary.protos)
|
||||
for ____, tile in ipairs(tiles) do
|
||||
local ____data_tileDictionary_protos_1, ____tile_name_2 = data.tileDictionary.protos, tile.name
|
||||
if ____data_tileDictionary_protos_1[____tile_name_2] == nil then
|
||||
local ____protosCount_0 = protosCount
|
||||
protosCount = ____protosCount_0 + 1
|
||||
____data_tileDictionary_protos_1[____tile_name_2] = ____protosCount_0
|
||||
end
|
||||
local protoKey = data.tileDictionary.protos[tile.name]
|
||||
local xString = tostring(tile.position.x)
|
||||
local yString = tostring(tile.position.y)
|
||||
local ____data_tileDictionary_tilesXY_3, ____xString_4 = data.tileDictionary.tilesXY, xString
|
||||
if ____data_tileDictionary_tilesXY_3[____xString_4] == nil then
|
||||
____data_tileDictionary_tilesXY_3[____xString_4] = {}
|
||||
end
|
||||
data.tileDictionary.tilesXY[xString][yString] = protoKey
|
||||
end
|
||||
if data.events == nil then
|
||||
data.events = {}
|
||||
end
|
||||
local ____data_events_5, ____eventName_6 = data.events, eventName
|
||||
if ____data_events_5[____eventName_6] == nil then
|
||||
____data_events_5[____eventName_6] = {}
|
||||
end
|
||||
local ____data_events_eventName_7 = data.events[eventName]
|
||||
____data_events_eventName_7[#____data_events_eventName_7 + 1] = event.tick
|
||||
if updater ~= nil then
|
||||
updater(data)
|
||||
end
|
||||
end,
|
||||
expirationDurationTicks
|
||||
)
|
||||
end
|
||||
function getTiles(surface, area)
|
||||
local ____surface_find_tiles_filtered_result_8 = surface
|
||||
if ____surface_find_tiles_filtered_result_8 ~= nil then
|
||||
____surface_find_tiles_filtered_result_8 = ____surface_find_tiles_filtered_result_8.find_tiles_filtered({area = area})
|
||||
end
|
||||
return ____surface_find_tiles_filtered_result_8 or ({})
|
||||
end
|
||||
function getSurface(surfaceIndex)
|
||||
return game.surfaces[surfaceIndex]
|
||||
end
|
||||
function ____exports.handleChunkGeneratedEvent(event, expirationDurationTicks)
|
||||
local tiles = getTiles(event.surface, event.area)
|
||||
mapTilesUpdateDebounce(
|
||||
event.surface,
|
||||
Converters.convertMapTablePosition(event.position),
|
||||
tiles,
|
||||
event,
|
||||
nil,
|
||||
expirationDurationTicks
|
||||
)
|
||||
end
|
||||
function groupTiles(tiles)
|
||||
local mapChunkPositionToTiles = __TS__New(Map)
|
||||
for ____, tile in ipairs(tiles) do
|
||||
local chunkPosition = {
|
||||
math.floor(tile.position.x / 32),
|
||||
math.floor(tile.position.y / 32)
|
||||
}
|
||||
if not mapChunkPositionToTiles:has(chunkPosition) then
|
||||
mapChunkPositionToTiles:set(chunkPosition, {})
|
||||
end
|
||||
local ____mapChunkPositionToTiles_get_result_push_result_10 = mapChunkPositionToTiles:get(chunkPosition)
|
||||
if ____mapChunkPositionToTiles_get_result_push_result_10 ~= nil then
|
||||
local ____temp_11 = mapChunkPositionToTiles:get(chunkPosition)
|
||||
____temp_11[#____temp_11 + 1] = tile
|
||||
____mapChunkPositionToTiles_get_result_push_result_10 = nil
|
||||
end
|
||||
end
|
||||
return mapChunkPositionToTiles
|
||||
end
|
||||
function handleBuiltTileEvent(event)
|
||||
local surface = getSurface(event.surface_index)
|
||||
if surface == nil then
|
||||
local eventName = Converters.eventNameString(event.name)
|
||||
log("[handleBuiltTileEvent] undefined surface " .. eventName)
|
||||
return
|
||||
end
|
||||
local tiles = Converters.convertPlacedTiles(event.tile, event.tiles)
|
||||
local groupedTiles = groupTiles(tiles)
|
||||
for ____, ____value in __TS__Iterator(groupedTiles) do
|
||||
local chunkPos = ____value[1]
|
||||
local tiles = ____value[2]
|
||||
mapTilesUpdateDebounce(
|
||||
surface,
|
||||
chunkPos,
|
||||
tiles,
|
||||
event,
|
||||
function(data)
|
||||
if isEventType(event, defines.events.on_player_built_tile) then
|
||||
data.player = event.player_index
|
||||
return
|
||||
end
|
||||
if isEventType(event, defines.events.on_robot_built_tile) then
|
||||
local ____data_15 = data
|
||||
local ____event_robot_unit_number_13 = event.robot
|
||||
if ____event_robot_unit_number_13 ~= nil then
|
||||
____event_robot_unit_number_13 = ____event_robot_unit_number_13.unit_number
|
||||
end
|
||||
____data_15.robot = {unitNumber = ____event_robot_unit_number_13 or nil, name = event.robot.name, protoType = event.robot.type}
|
||||
return
|
||||
end
|
||||
local exhaustiveCheck = event
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
function handleMinedTileEvent(event)
|
||||
local surface = getSurface(event.surface_index)
|
||||
if surface == nil then
|
||||
local eventName = Converters.eventNameString(event.name)
|
||||
log("[handleMinedTileEvent] undefined surface " .. eventName)
|
||||
return
|
||||
end
|
||||
local tiles = Converters.convertRemovedTiles(surface, event.tiles)
|
||||
local groupedTiles = groupTiles(tiles)
|
||||
for ____, ____value in __TS__Iterator(groupedTiles) do
|
||||
local chunkPos = ____value[1]
|
||||
local tiles = ____value[2]
|
||||
mapTilesUpdateDebounce(
|
||||
surface,
|
||||
chunkPos,
|
||||
tiles,
|
||||
event,
|
||||
function(data)
|
||||
if isEventType(event, defines.events.on_player_mined_tile) then
|
||||
data.player = event.player_index
|
||||
return
|
||||
end
|
||||
if isEventType(event, defines.events.on_robot_mined_tile) then
|
||||
local ____data_18 = data
|
||||
local ____event_robot_unit_number_16 = event.robot
|
||||
if ____event_robot_unit_number_16 ~= nil then
|
||||
____event_robot_unit_number_16 = ____event_robot_unit_number_16.unit_number
|
||||
end
|
||||
____data_18.robot = {unitNumber = ____event_robot_unit_number_16 or nil, name = event.robot.name, protoType = event.robot.type}
|
||||
return
|
||||
end
|
||||
local exhaustiveCheck = event
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
Type = KafkatorioPacketData.Type
|
||||
script.on_event(
|
||||
defines.events.on_chunk_generated,
|
||||
function(e)
|
||||
log("on_chunk_generated " .. tostring(e.tick))
|
||||
____exports.handleChunkGeneratedEvent(e)
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.script_raised_set_tiles,
|
||||
function(event)
|
||||
log("script_raised_set_tiles " .. tostring(event.tick))
|
||||
local surface = getSurface(event.surface_index)
|
||||
if surface == nil then
|
||||
return
|
||||
end
|
||||
local groupedTiles = groupTiles(event.tiles)
|
||||
for ____, ____value in __TS__Iterator(groupedTiles) do
|
||||
local chunkPos = ____value[1]
|
||||
local tiles = ____value[2]
|
||||
mapTilesUpdateDebounce(surface, chunkPos, tiles, event)
|
||||
end
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.on_player_built_tile,
|
||||
function(e)
|
||||
log("on_player_built_tile " .. tostring(e.tick))
|
||||
handleBuiltTileEvent(e)
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.on_robot_built_tile,
|
||||
function(e)
|
||||
log("on_robot_built_tile " .. tostring(e.tick))
|
||||
handleBuiltTileEvent(e)
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.on_player_mined_tile,
|
||||
function(e)
|
||||
log("on_player_mined_tile " .. tostring(e.tick))
|
||||
handleMinedTileEvent(e)
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.on_robot_mined_tile,
|
||||
function(e)
|
||||
log("on_robot_mined_tile " .. tostring(e.tick))
|
||||
handleMinedTileEvent(e)
|
||||
end
|
||||
)
|
||||
script.on_event(
|
||||
defines.events.on_pre_chunk_deleted,
|
||||
function(e)
|
||||
log("on_pre_chunk_deleted " .. tostring(e.tick))
|
||||
local surface = getSurface(e.surface_index)
|
||||
if surface == nil then
|
||||
return
|
||||
end
|
||||
for ____, position in ipairs(e.positions) do
|
||||
local key = {surfaceIndex = surface.index, chunkPosition = {position.x, position.y}}
|
||||
EventUpdatesManager:debounce(
|
||||
key,
|
||||
Type.MapChunkUpdate,
|
||||
function(data)
|
||||
local ____temp_19 = true
|
||||
data.isDeleted = ____temp_19
|
||||
return ____temp_19
|
||||
end,
|
||||
0
|
||||
)
|
||||
end
|
||||
end
|
||||
)
|
||||
return ____exports
|
||||
Loading…
Add table
Add a link
Reference in a new issue