Skip to content

Commit d5f3dd7

Browse files
authored
Merge pull request #20 from veger/issue-3_surfaces
Surface support
2 parents d9e35e9 + 9033ffa commit d5f3dd7

File tree

15 files changed

+373
-52
lines changed

15 files changed

+373
-52
lines changed

changelog.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
---------------------------------------------------------------------------------------------------
22
Version: 1.4.0
33

4+
Features:
5+
- Configurable surface for each camera (when multiple surfaces are available).
6+
Hint: The 'Area Tracker' seems most suitable for small surfaces, as used in for example Factorissimo2.
7+
- Configurable surface for each tracker (when multiple surfaces are available).
8+
- Camera only uses trackers on same surface.
49
Minor Features:
510
- Add toggle/shortcut to pause all cameras.
611

control.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ script.on_event(defines.events.on_gui_checked_state_changed, TLBE.GUI.onStateCha
5050
script.on_event(defines.events.on_runtime_mod_setting_changed, TLBE.Config.reload)
5151
script.on_event(defines.events.on_player_created, on_player_created)
5252
script.on_event(defines.events.on_player_joined_game, on_player_created)
53+
script.on_event(defines.events.on_pre_surface_deleted, TLBE.GUI.onSurfaceChanged)
54+
script.on_event(defines.events.on_surface_deleted, TLBE.GUI.onSurfacesUpdated)
55+
script.on_event(defines.events.on_surface_created, TLBE.GUI.onSurfacesUpdated)
56+
script.on_event(defines.events.on_surface_imported, TLBE.GUI.onSurfacesUpdated)
57+
script.on_event(defines.events.on_surface_renamed, TLBE.GUI.onSurfaceChanged)
5358
script.on_event(defines.events.on_built_entity, TLBE.Main.entity_built)
5459
script.on_event(defines.events.on_rocket_launch_ordered, TLBE.Main.rocket_launch)
5560
script.on_event(defines.events.on_rocket_launched, TLBE.Main.rocket_launched)

locale/en/locale.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
camera-surface-deleted=Surface of camera '__1__' got deleted, camera will be disabled.
12
max-zoom=Max zoom reached, increase image size (or make base smaller)
23
migrated-camera=Migrated TLBE player settings to new camera settings.
34
migration-issue-framerate=Could not recover 'frame rate', please set manually as soon as possible. (only rocket tracker will not work as before)
@@ -23,6 +24,7 @@ label-name=Name:
2324
label-position=Position:
2425
label-resolution=Resolution:
2526
label-size=Size:
27+
label-surface=Surface:
2628
label-smooth=Smooth camera movement
2729
label-speedgain=Speed gain:
2830
label-top-right=Top/Right:
@@ -49,6 +51,7 @@ tracker-enable=Enable/Disable tracker. (disabled trackers are skipped by the cam
4951
tracker-area-map=Use map marker with name '__1__' to fill in this corner.
5052
tracker-area-player=Use player coordinates to fill in this corner.
5153
tracker-smooth=Enable/Disable smooth behavior of the camera when this tracker is active.
54+
tracker-wrong-surface=Tracker is disabled because tracker surface differs from camera surface.
5255

5356
[controls]
5457
tlbe-main-window-toggle=Open/Close camera settings

migrations/tlbe.1.3.1.lua

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
if global.playerSettings == nil then
2+
goto SkipMigration
3+
end
4+
5+
-- Set set camera and tracker surfaces to the default surface
6+
for player_index, _ in pairs(game.players) do
7+
local playerSettings = global.playerSettings[player_index]
8+
if playerSettings == nil then
9+
goto NextPlayer
10+
end
11+
12+
for _, camera in pairs(playerSettings.cameras) do
13+
camera.surfaceName = game.surfaces[1].name
14+
end
15+
16+
for _, tracker in pairs(playerSettings.trackers) do
17+
tracker.surfaceName = game.surfaces[1].name
18+
end
19+
20+
::NextPlayer::
21+
end
22+
23+
::SkipMigration::

prototypes/styles.lua

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ default_gui["tlbe_fancy_list_box_image"] = {
8282
stretch_image_to_widget_size = true
8383
}
8484

85+
default_gui["tlbe_fancy_list_box_image_reduce_size"] = {
86+
type = "image_style",
87+
parent = "tlbe_fancy_list_box_image",
88+
padding = 5,
89+
}
90+
8591
default_gui["tlbe_fancy_list_box_button_hidden"] = {
8692
type = "empty_widget_style",
8793
width = 22,
@@ -281,6 +287,11 @@ default_gui["tlbe_config_textfield"] = {
281287
width = 200
282288
}
283289

290+
default_gui["tlbe_config_dropdown"] = {
291+
type = "dropdown_style",
292+
width = 200,
293+
}
294+
284295
default_gui["tlbe_config_half_width_textfield"] = {
285296
type = "textbox_style",
286297
parent = "tlbe_config_textfield",

scripts/camera.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function Camera.newCamera(player, cameraList)
1818
local camera = {
1919
name = cameraName,
2020
enabled = false,
21+
surfaceName = game.surfaces[1].name,
2122
entityInfo = false,
2223
trackers = {},
2324
centerPos = player.position,
@@ -115,7 +116,7 @@ function Camera.followTrackerSmooth(playerSettings, player, camera, tracker)
115116

116117
camera.zoom = minZoom
117118
else
118-
-- Max (min atually) zoom is not reached (anymore)
119+
-- Max (min actually) zoom is not reached (anymore)
119120
playerSettings.noticeMaxZoom = nil
120121
end
121122
end

0 commit comments

Comments
 (0)