self._turnips.append(turnip)
self._seeds -= 1
self._update_toolbar(gamestate)
- except TurnipInvalidPosition as e:
+ except TurnipInvalidPosition:
# TODO: Add error sound or something
pass
- def _update_light_angle(self, pos):
+ def _update_light_angle(self, pos, gamestate):
# Update the angle of the given light
pos = pymunk.pygame_util.to_pygame(pos, pygame.display.get_surface())
distance = pos - self._dragging.position
angle = math.atan2(distance[1], distance[0])
# Set light angle to this position
self._dragging.ray_manager.direction = math.degrees(angle)
- # TODO: Update gamestate with new angle
+ # Hackily update gamestate with new angle
+ for light_cfg in gamestate.station["lights"]:
+ light_pos = pymunk.Vec2d(light_cfg["position"])
+ if light_pos.get_dist_sqrd(self._dragging.position) < 5.0:
+ light_cfg["direction"] = math.degrees(angle)
+ break
def _place_spotlight(self, gamestate, colour, ev):
if self._seeds > 5:
self._update_toolbar(gamestate)
cfg = {
"type": "spotlight",
- "colour": colour,
+ "colours": [colour],
"position": pos,
"direction": 45,
"spread": 90,
self._update_toolbar(gamestate)
cfg = {
"type": "lamp",
- "colour": colour,
+ "colours": [colour],
"position": pos,
"intensity": 0.5,
}
if ev.key in (pgl.K_q, pgl.K_ESCAPE):
from .menu import MenuScene
SceneChangeEvent.post(scene=MenuScene())
- if ev.key == pgl.K_e:
+ elif ev.key == pgl.K_e:
from .night import NightScene
SceneChangeEvent.post(scene=NightScene())
- if ev.key == pgl.K_SPACE:
+ elif ev.key == pgl.K_SPACE:
self._paused = not self._paused
elif ev.type == pgl.MOUSEBUTTONDOWN:
if ev.button == 1:
print self._lights.lit_by(ev.pos, surfpos=True)
elif ev.button == 3:
light = self._lights.nearest(ev.pos, surfpos=True,
- max_distance=5.0)
+ max_distance=20.0)
if light:
# Start drag to rotate light
self._dragging = light
elif ev.type == pgl.MOUSEMOTION:
if self._dragging:
# Calculate angle between current position and mouse pos
- self._update_light_angle(ev.pos)
+ self._update_light_angle(ev.pos, gamestate)
elif ev.type == pgl.MOUSEBUTTONUP:
self._dragging = None
self._lights.tick()
def _update_toolbar(self, gamestate):
- text = ("Turnip Stocks: Seeds: %d. Planted: %d. "
+ text = ("Day: %d: Turnip Stocks: Seeds: %d. Planted: %d. "
"Harvested: %d. Destroyed: %d" %
- (self._seeds, len(self._turnips),
+ (gamestate.days, self._seeds, len(self._turnips),
self._harvested, gamestate.eaten))
self._toolbar = self._toolbar_font.render(text, True, (255, 255, 255))