projects
/
tabakrolletjie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add temporary light removing cursors.
[tabakrolletjie.git]
/
tabakrolletjie
/
scenes
/
day.py
diff --git
a/tabakrolletjie/scenes/day.py
b/tabakrolletjie/scenes/day.py
index be8642509d5a4418a74e53c550e3bfef09a12e7e..16e2249e5c6fbb32b8007749dbd7cb08227a3934 100644
(file)
--- a/
tabakrolletjie/scenes/day.py
+++ b/
tabakrolletjie/scenes/day.py
@@
-15,7
+15,7
@@
from ..lights import LightManager, light_fitting_by_type, check_space_for_light
from ..infobar import InfoBar
from ..obstacles import ObstacleManager
from ..events import SceneChangeEvent
from ..infobar import InfoBar
from ..obstacles import ObstacleManager
from ..events import SceneChangeEvent
-from ..utils import debug_timer, shadowed_text
+from ..utils import debug_timer, shadowed_text
, write_save_file
from ..loader import loader
from ..transforms import Overlay, Alpha, ColourWedges
from ..loader import loader
from ..transforms import Overlay, Alpha, ColourWedges
@@
-53,6
+53,9
@@
class DayScene(BaseScene):
self._draw_you_lose(gamestate)
elif gamestate.harvested >= gamestate.turnip_target:
self._draw_you_win(gamestate)
self._draw_you_lose(gamestate)
elif gamestate.harvested >= gamestate.turnip_target:
self._draw_you_win(gamestate)
+ else:
+ write_save_file(gamestate.serialize())
+ self._ending = False
def _draw_you_lose(self, gamestate):
overlay = pygame.surface.Surface(
def _draw_you_lose(self, gamestate):
overlay = pygame.surface.Surface(
@@
-112,6
+115,10
@@
class DayScene(BaseScene):
tools.append(tool)
x += step
tools.append(tool)
x += step
+ tools.append(ImageButton(
+ '32', 'remove.png', name='remove light', pos=(x, y)))
+ x += step
+
tools.append(ImageButton(
'32', 'default_cursor.png', name='reset tool', pos=(x, y)))
tools.append(ImageButton(
'32', 'default_cursor.png', name='reset tool', pos=(x, y)))
@@
-128,7
+135,11
@@
class DayScene(BaseScene):
gamestate.turnips = turnip_data
def end_day(self, gamestate):
gamestate.turnips = turnip_data
def end_day(self, gamestate):
+ if self._ending:
+ return
self._battery.apply_recharge()
self._battery.apply_recharge()
+ gamestate.update_lights(self._lights)
+ self._ending = True
from .night import NightScene
SceneChangeEvent.post(scene=NightScene())
from .night import NightScene
SceneChangeEvent.post(scene=NightScene())
@@
-224,13
+235,22
@@
class DayScene(BaseScene):
gamestate.station["lights"].append(cfg)
self._lights.add_light(cfg)
gamestate.station["lights"].append(cfg)
self._lights.add_light(cfg)
+ def _remove_light(self, ev):
+ light = self._lights.nearest(ev.pos, surfpos=True, max_distance=25.0)
+ if light:
+ self._lights.remove_light(light)
+
def event(self, ev, gamestate):
def event(self, ev, gamestate):
+ if self._ending:
+ return
if self._game_over_text:
if ev.type in (pgl.KEYDOWN, pgl.MOUSEBUTTONDOWN):
if self._game_over_text:
if ev.type in (pgl.KEYDOWN, pgl.MOUSEBUTTONDOWN):
+ self._ending = True
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
if ev.type == pgl.KEYDOWN:
if ev.key in (pgl.K_q, pgl.K_ESCAPE):
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
if ev.type == pgl.KEYDOWN:
if ev.key in (pgl.K_q, pgl.K_ESCAPE):
+ self._ending = True
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
elif ev.key == pgl.K_e:
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
elif ev.key == pgl.K_e:
@@
-250,6
+270,7
@@
class DayScene(BaseScene):
elif tool.name == 'start night':
self.end_day(gamestate)
elif tool.name == 'exit':
elif tool.name == 'start night':
self.end_day(gamestate)
elif tool.name == 'exit':
+ self._ending = True
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
else:
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
else:
@@
-258,6
+279,10
@@
class DayScene(BaseScene):
self._set_cursor(
'seed', transform=Alpha(alpha=172))
self._clear_light_toolbar()
self._set_cursor(
'seed', transform=Alpha(alpha=172))
self._clear_light_toolbar()
+ elif self._tool.name == 'remove light':
+ self._set_cursor(
+ 'remove', transform=Alpha(alpha=172))
+ self._clear_light_toolbar()
elif self._tool.name == 'light':
self._unset_cursor()
self._draw_light_toolbar(
elif self._tool.name == 'light':
self._unset_cursor()
self._draw_light_toolbar(
@@
-277,6
+302,8
@@
class DayScene(BaseScene):
if self._tool:
if self._tool.name == "seed":
self._place_seed(gamestate, ev)
if self._tool:
if self._tool.name == "seed":
self._place_seed(gamestate, ev)
+ elif self._tool.name == "remove light":
+ self._remove_light(ev)
elif self._tool.name == "light" and self._light_colors:
self._place_light(
gamestate, self._tool.light_config,
elif self._tool.name == "light" and self._light_colors:
self._place_light(
gamestate, self._tool.light_config,