noita_entangled_worlds/files/src/net_handling.lua

62 lines
1.9 KiB
Lua
Raw Normal View History

2024-05-02 20:24:27 +03:00
local player_fns = dofile_once("mods/quant.ew/files/src/player_fns.lua")
local ctx = dofile_once("mods/quant.ew/files/src/ctx.lua")
2024-05-08 20:33:41 +03:00
local enemy_sync = dofile_once("mods/quant.ew/files/src/enemy_sync.lua")
2024-05-07 23:46:15 +03:00
local perk_fns = dofile_once("mods/quant.ew/files/src/perk_fns.lua")
2024-05-02 20:24:27 +03:00
local net_handling = {
proxy = {},
mod = {},
}
function net_handling.proxy.seed(_, value)
local seed = tonumber(value)
if seed ~= nil then
SetWorldSeed(seed)
SetRandomSeed(seed, 141)
end
end
function net_handling.proxy.peer_id(_, value)
ctx.my_id = tonumber(value)
end
function net_handling.mod.player(peer_id, value)
local input_data = value.i
local pos_data = value.p
local slot_data = value.s
2024-05-02 20:24:27 +03:00
-- GamePrint("Player update for "..peer_id.." "..pos_data.x.." "..pos_data.y)
if not player_fns.peer_has_player(peer_id) then
player_fns.spawn_player_for(peer_id, pos_data.x, pos_data.y)
end
local player_data = player_fns.peer_get_player_data(peer_id)
player_fns.deserialize_inputs(input_data, player_data)
player_fns.deserialize_position(pos_data, player_data)
if slot_data ~= nil then
player_fns.set_current_slot(slot_data, player_data)
end
2024-05-02 20:24:27 +03:00
end
2024-05-03 23:38:40 +03:00
function net_handling.mod.inventory(peer_id, inventory_state)
if not player_fns.peer_has_player(peer_id) then
return
end
local player_data = player_fns.peer_get_player_data(peer_id)
player_fns.deserialize_items(inventory_state, player_data)
2024-05-07 23:46:15 +03:00
-- GamePrint("synced inventory")
end
function net_handling.mod.perks(peer_id, perk_data)
if not player_fns.peer_has_player(peer_id) then
return
end
local player_data = player_fns.peer_get_player_data(peer_id)
perk_fns.update_perks(perk_data, player_data)
2024-05-03 23:38:40 +03:00
end
2024-05-08 20:33:41 +03:00
function net_handling.mod.enemy(peer_id, enemy_data)
if peer_id == ctx.host_id then
enemy_sync.handle_enemy_data(enemy_data)
end
end
2024-05-02 20:24:27 +03:00
return net_handling