Skip to content

Commit

Permalink
update for Factorio 0.12
Browse files Browse the repository at this point in the history
  • Loading branch information
Luke Perkin committed Jul 17, 2015
1 parent 4010d05 commit 8bad21f
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 48 deletions.
25 changes: 13 additions & 12 deletions control.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,16 @@ local function OnGameSave()
end

local function OnGameLoad()
if not mod_has_init and glob.radar_system then
radar_system = RadarSystem.CreateActor(glob.radar_system)
if not mod_has_init and global.radar_system then
radar_system = RadarSystem.CreateActor(global.radar_system)
radar_system:OnLoad()
mod_has_init = true
end
end

local function OnPlayerCreated( playerindex )
local player = game.players[playerindex]
player.insert{name = "radar", count = 10}
end

local function OnEntityBuilt( entity, playerindex )
Expand Down Expand Up @@ -58,13 +59,13 @@ local function OnTick()
radar_system:OnTick()
end

game.oninit(OnGameInit)
game.onload(OnGameLoad)
game.onsave(OnGameSave)
game.onevent(defines.events.onbuiltentity, function(event) OnEntityBuilt(event.createdentity, event.playerindex) end)
game.onevent(defines.events.onrobotbuiltentity, function(event) OnEntityBuilt(event.createdentity) end)
game.onevent(defines.events.onentitydied, function(event) OnEntityDestroy(event.entity) end)
game.onevent(defines.events.onpreplayermineditem, function(event) OnEntityDestroy(event.entity, event.playerindex) end)
game.onevent(defines.events.onrobotpremined, function(event) OnEntityDestroy(event.entity) end)
game.onevent(defines.events.onplayercreated, function(event) OnPlayerCreated(event.playerindex) end)
game.onevent(defines.events.ontick, OnTick)
game.on_init(OnGameInit)
game.on_load(OnGameLoad)
game.on_save(OnGameSave)
game.on_event(defines.events.on_built_entity, function(event) OnEntityBuilt(event.created_entity, event.player_index) end)
game.on_event(defines.events.on_robot_built_entity, function(event) OnEntityBuilt(event.created_entity) end)
game.on_event(defines.events.on_entity_died, function(event) OnEntityDestroy(event.entity) end)
game.on_event(defines.events.on_preplayer_mined_item, function(event) OnEntityDestroy(event.entity, event.player_index) end)
game.on_event(defines.events.on_robot_pre_mined, function(event) OnEntityDestroy(event.entity) end)
game.on_event(defines.events.on_player_created, function(event) OnPlayerCreated(event.player_index) end)
game.on_event(defines.events.on_tick, OnTick)
2 changes: 1 addition & 1 deletion helpers/gui_helpers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,4 @@ function GUI.OnClick( event )
end
end
end
game.onevent(defines.events.onguiclick, GUI.OnClick)
game.on_event(defines.events.on_gui_click, GUI.OnClick)
25 changes: 0 additions & 25 deletions helpers/helpers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -29,31 +29,6 @@ function FindTilesInArea( area, tileNameFilter )
return foundTiles
end

function FindTilePropertiesInArea( area, tileNameFilter )
local foundTiles = {}
local aa = area[1]
local bb = area[2]
local width = bb.x - aa.x
local height = bb.y - aa.y
for _y = 0, height do
for _x = 0, width do
local pos = {
x = aa.x + _x,
y = aa.y + _y
}
local tile = game.gettile(pos.x, pos.y)
local tileProps = game.gettileproperties(pos.x, pos.y)
if tile.name == tileNameFilter then
table.insert(foundTiles, {
name = tile.name,
position = pos,
})
end
end
end
return foundTiles
end

function PrettyNumber( number )
if number < 1000 then
return string.format("%i", number)
Expand Down
2 changes: 1 addition & 1 deletion info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "commandcontrol",
"version": "1.0.1",
"version": "1.0.2",
"title": "Command Control",
"author": "Luke Perkin",
"contact": "",
Expand Down
38 changes: 29 additions & 9 deletions radar_system.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ end

function RadarSystem:OnLoad()
self.enabled = true

-- remove invalid radars.
for i = #self.radars, 1, -1 do
local radar = self.radars[i]
if not radar.valid then
table.remove(self.radars, i)
end
end

StartCoroutine(self.UpdateGUIRoutine, self)
end

Expand All @@ -41,7 +50,7 @@ function RadarSystem:CheckPlayerIsNearRadar( player )
end
else
local searchArea = SquareArea(player.position, self.gui_activation_distance)
local nearRadars = game.findentitiesfiltered{area = searchArea, name = "radar"}
local nearRadars = player.surface.find_entities_filtered{area = searchArea, name = "radar"}
if #nearRadars > 0 then
self.nearby_radar[player.name] = nearRadars[1]
if not self.gui[player.name] then
Expand Down Expand Up @@ -77,6 +86,7 @@ function RadarSystem:OnTick()
for playerIndex, player in ipairs(game.players) do
local viewingRadar = self.viewing_radar[player.name]
local nearbyRadar = self.nearby_radar[player.name]

if (viewingRadar and not viewingRadar.valid) or (nearbyRadar and not nearbyRadar.valid) then
self:ExitRadarViewer(player)
self:CloseGUI(player)
Expand All @@ -103,13 +113,13 @@ function RadarSystem:EnterRadarViewer( data )

if not radar.valid or radar.energy < 1 then return end

player.print("Viewing radar "..radar.backername..".")
player.print("Viewing radar "..radar.backer_name..".")

-- Remove the player's items if we switch to a different radar.
-- This is to prevent player's from using the cc system to transfer items over
-- long distances. If you want that, remove the next three lines.
if self.viewing_radar[player.name] and radar ~= self.viewing_radar[player.name] then
player.clearitemsinside()
player.clear_items_inside()
end

self.viewing_radar[player.name] = radar
Expand Down Expand Up @@ -174,7 +184,8 @@ function RadarSystem:UpdateGUI( player )
if not self.gui[player.name] then return end

for i, radar in ipairs(self.radars) do
if not radar.valid then
if (radar and not radar.valid) then
self:RemoveRadar(radar)
self:CloseGUI(player)
self:OpenGUI(player)
return
Expand All @@ -192,7 +203,7 @@ function RadarSystem:OpenRenameGUI( player )
local radarname = self:GetRadarName(radar)
GUI.PushParent(player.gui.center)
self.rename_gui[player.name] = GUI.PushParent(GUI.Frame("radar_rename", "Rename "..radarname, GUI.VERTICAL))
GUI.TextField("rename_input", radar.backername)
GUI.TextField("rename_input", radar.backer_name)
GUI.Button("done", "Done", "OnRenameDone", self, player)
GUI.PopParent()
GUI.PopParent()
Expand All @@ -203,18 +214,18 @@ function RadarSystem:OnRenameDone( player )
if self.viewing_radar[player.name] then radar = self.viewing_radar[player.name] end
local text = self.rename_gui[player.name].rename_input.text
if text ~= "" then
self.renames[radar.backername] = text
radar.backer_name = text;
end
self.rename_gui[player.name].destroy()
self:CloseGUI(player)
self:OpenGUI(player)
end

function RadarSystem:GetRadarName( radar )
if self.renames and self.renames[radar.backername] then
return self.renames[radar.backername]
if not radar or (radar and not radar.valid) then
return "NIL"
else
return radar.backername
return radar.backer_name
end
end

Expand All @@ -226,6 +237,15 @@ function RadarSystem:OnRadarBuilt( radarEntity, player )
end
end

function RadarSystem:RemoveRadar( radarToRemove )
for i, radar in ipairs(self.radars) do
if radar.equals(radarToRemove) then
table.remove(self.radars, i)
break
end
end
end

function RadarSystem:OnRadarDestroy( radarEntity, player )
local removedRadar = nil
for i, radar in ipairs(self.radars) do
Expand Down

0 comments on commit 8bad21f

Please sign in to comment.