• R/O
  • SSH

Commit

Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

A simple mod for the game "Factorio" that does what it's name implies.


Commit MetaInfo

Revisionf77f891c5a2f19dce464a82ea2dbbb1b9e5ea980 (tree)
Time2018-08-06 16:18:41
AuthorEric Hopper <hopper@omni...>
CommiterEric Hopper

Log Message

A nice, complete, simple mod.

Change Summary

Incremental Difference

diff -r b9dd2e464556 -r f77f891c5a2f control.lua
--- a/control.lua Sun Aug 05 23:37:34 2018 -0700
+++ b/control.lua Mon Aug 06 00:18:41 2018 -0700
@@ -1,24 +1,68 @@
1+local conf_speed1 = setmetatable({}, {
2+ __index = function(self, id)
3+ local v = settings.get_player_settings(game.players[id])["runspeeedtoggle-speed1"].value
4+ rawset(self, id, v)
5+ return v
6+ end
7+})
8+local conf_speed2 = setmetatable({}, {
9+ __index = function(self, id)
10+ local v = settings.get_player_settings(game.players[id])["runspeeedtoggle-speed2"].value
11+ rawset(self, id, v)
12+ return v
13+ end
14+})
15+local conf_speed3 = setmetatable({}, {
16+ __index = function(self, id)
17+ local v = settings.get_player_settings(game.players[id])["runspeeedtoggle-speed3"].value
18+ rawset(self, id, v)
19+ return v
20+ end
21+})
22+
23+script.on_event(defines.events.on_runtime_mod_setting_changed,
24+ function(event)
25+ if not event or not event.setting then
26+ return
27+ end
28+ if event.setting == "runspeeedtoggle-speed1" then
29+ conf_speed1[event.player_index] = nil
30+ elseif event.setting == "runspeeedtoggle-speed2" then
31+ conf_speed2[event.player_index] = nil
32+ elseif event.setting == "runspeeedtoggle-speed3" then
33+ conf_speed3[event.player_index] = nil
34+ end
35+end)
36+
137 local function xy_add(p1, p2)
238 return {x = p1.x + p2.x,
339 y = p1.y + p2.y}
440 end
541
42+local function approx_eq(v1, v2, errscale)
43+ offset = v2 * errscale
44+ return ((v1 >= (v2 - offset)) and (v1 <= (v2 + offset)))
45+end
46+
647 local function on_hotkey(event)
748 local player = game.players[event.player_index]
8- local speed = player.character_running_speed_modifier
49+ local speed1 = conf_speed1[event.player_index]
50+ local speed2 = conf_speed2[event.player_index]
51+ local speed3 = conf_speed3[event.player_index]
52+ local curspeed = player.character_running_speed_modifier
953 local msg = ""
1054
11- if speed == 0 then
12- speed = 1.5
55+ if approx_eq(curspeed, speed1, 0.000001) then
56+ curspeed = speed2
1357 msg = ">"
14- elseif (speed > 1.49999) and (speed < 1.50001) then
15- speed = 15
58+ elseif approx_eq(curspeed, speed2, 0.000001) then
59+ curspeed = speed3
1660 msg = ">>"
1761 else
18- speed = 0
62+ curspeed = speed1
1963 msg = "0"
2064 end
21- player.character_running_speed_modifier = speed
65+ player.character_running_speed_modifier = curspeed
2266 player.surface.create_entity(
2367 {name = "flying-text",
2468 position = xy_add(player.position,{x=-0.5,y=0.2}),
diff -r b9dd2e464556 -r f77f891c5a2f locale/en/all.cfg
--- a/locale/en/all.cfg Sun Aug 05 23:37:34 2018 -0700
+++ b/locale/en/all.cfg Mon Aug 06 00:18:41 2018 -0700
@@ -1,2 +1,12 @@
11 [controls]
22 runspeedtoggle_hotkey=Switch the running speed
3+
4+[mod-setting-name]
5+runspeeedtoggle-speed1=Speed for floating '0'
6+runspeeedtoggle-speed2=Speed for floating '>'
7+runspeeedtoggle-speed3=Speed for floating '>>'
8+
9+[mod-setting-description]
10+runspeeedtoggle-speed1=This is expected to be the smallest modifier. 0 is the unmodified running speed. Negative numbers slow the player down by that fraction. Positive numbers multiply the speed by 1 + number (i.e. 0.3 means 30% faster).
11+runspeeedtoggle-speed2=This is expected to be the middle speed modifier. 0 is the unmodified running speed. Negative numbers slow the player down by that fraction. Positive numbers multiply the speed by 1 + number (i.e. 0.3 means 30% faster).
12+runspeeedtoggle-speed3=This is expected to be the largest modifier. 0 is the unmodified running speed. Negative numbers slow the player down by that fraction. Positive numbers multiply the speed by 1 + number (i.e. 0.3 means 30% faster).