mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
Merge branch 'core'
This commit is contained in:
@@ -64,37 +64,38 @@ function Gui.set_dropdown_index(dropdown,_item)
|
|||||||
return dropdown
|
return dropdown
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Event.register(-1,function(event)
|
||||||
|
Server.new_thread{
|
||||||
|
name='camera-follow',
|
||||||
|
data={cams={},cam_index=1,players={}}
|
||||||
|
}:on_event('tick',function(self)
|
||||||
|
local _cam = self.data.cams[self.data.cam_index]
|
||||||
|
if not _cam then self.data.cam_index = 1 _cam = self.data.cams[self.data.cam_index] end
|
||||||
|
if not _cam then return end
|
||||||
|
if not _cam.cam.valid then table.remove(self.data.cams,self.data.cam_index)
|
||||||
|
elseif not _cam.entity.valid then table.remove(self.data.cams,self.data.cam_index)
|
||||||
|
else _cam.cam.position = _cam.entity.position if not _cam.surface then _cam.cam.surface_index = _cam.entity.surface.index end self.data.cam_index = self.data.cam_index+1
|
||||||
|
end
|
||||||
|
end):on_event('error',function(self,err)
|
||||||
|
-- posible error handling if needed
|
||||||
|
error(err)
|
||||||
|
end):on_event(defines.events.on_player_respawned,function(self,event)
|
||||||
|
if self.data.players[event.player_index] then
|
||||||
|
local remove = {}
|
||||||
|
for index,cam in pairs(self.data.players[event.player_index]) do
|
||||||
|
Gui.cam_link{cam=cam,entity=Game.get_player(event).character}
|
||||||
|
if not cam.valid then table.insert(remove,index) end
|
||||||
|
end
|
||||||
|
for _,index in pairs(remove) do
|
||||||
|
table.remove(self.data.players[event.player_index],index)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end):open()
|
||||||
|
end)
|
||||||
|
|
||||||
local function _thread()
|
local function _thread()
|
||||||
local thread = Server.get_thread('camera-follow')
|
local thread = Server.get_thread('camera-follow')
|
||||||
if not thread then
|
if not thread then error('Camera Follow Thread Is Missing') end
|
||||||
thread = Server.new_thread{
|
|
||||||
name='camera-follow',
|
|
||||||
data={cams={},cam_index=1,players={}}
|
|
||||||
}:on_event('tick',function(self)
|
|
||||||
local _cam = self.data.cams[self.data.cam_index]
|
|
||||||
if not _cam then self.data.cam_index = 1 _cam = self.data.cams[self.data.cam_index] end
|
|
||||||
if not _cam then return end
|
|
||||||
if not _cam.cam.valid then table.remove(self.data.cams,self.data.cam_index)
|
|
||||||
elseif not _cam.entity.valid then table.remove(self.data.cams,self.data.cam_index)
|
|
||||||
else _cam.cam.position = _cam.entity.position if not _cam.surface then _cam.cam.surface_index = _cam.entity.surface.index end self.data.cam_index = self.data.cam_index+1
|
|
||||||
end
|
|
||||||
end):on_event('error',function(self,err)
|
|
||||||
-- posible error handling if needed
|
|
||||||
error(err)
|
|
||||||
end):on_event(defines.events.on_player_respawned,function(self,event)
|
|
||||||
if self.data.players[event.player_index] then
|
|
||||||
local remove = {}
|
|
||||||
for index,cam in pairs(self.data.players[event.player_index]) do
|
|
||||||
Gui.cam_link{cam=cam,entity=Game.get_player(event).character}
|
|
||||||
if not cam.valid then table.insert(remove,index) end
|
|
||||||
end
|
|
||||||
for _,index in pairs(remove) do
|
|
||||||
table.remove(self.data.players[event.player_index],index)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
thread:open()
|
|
||||||
end
|
|
||||||
return thread
|
return thread
|
||||||
end
|
end
|
||||||
--- Adds a camera that updates every tick (or less depeading on how many are opening) it will move to follow an entity
|
--- Adds a camera that updates every tick (or less depeading on how many are opening) it will move to follow an entity
|
||||||
|
|||||||
Reference in New Issue
Block a user