summaryrefslogtreecommitdiff
path: root/client/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'client/main.lua')
-rw-r--r--client/main.lua22
1 files changed, 12 insertions, 10 deletions
diff --git a/client/main.lua b/client/main.lua
index 2fad49e..7af1bd4 100644
--- a/client/main.lua
+++ b/client/main.lua
@@ -10,7 +10,7 @@ local local_player = nil
local drawing = require"drawing"
local coords = require"common.coords"
local Pos = coords.Pos
-local camera = require"camera".Camera.make()
+local camera = require"camera".Camera:make()
local Chunk = require"common.chunk".Chunk
local util = require"util"
@@ -24,10 +24,10 @@ local host,peer
local chunk
-local f3mode = false
+_G.debugmode = false
function love.keypressed(key,scancode,isrepeat)
- if scancode == "f3" then f3mode = not f3mode end
+ if scancode == "f3" then _G.debugmode = not _G.debugmode end
end
local function draw_player(pl,islocal)
@@ -45,7 +45,8 @@ end
local remote_players = {}
local function update_local_player(pl,dt)
- local SPEED = 10 -- pixels/sec
+ local SPEED = 10 -- units/sec
+ if love.keyboard.isScancodeDown("lshift") then SPEED = 100 end
local function kd(code)
if love.keyboard.isScancodeDown(code) then return 1 else return 0 end
end
@@ -85,10 +86,11 @@ function love.update(dt)
update_local_player(local_player,dt)
if love.keyboard.isScancodeDown"q" then camera.zoom = camera.zoom*1.05 end
if love.keyboard.isScancodeDown"e" then camera.zoom = camera.zoom/1.05 end
+ camera.zoom = math.max(2.25,math.min(50,camera.zoom))
sync_local_player(local_player,peer)
end
if chunk then
- local mh = camera:screen_to_world(Pos.make(love.mouse.getPosition())):to_hex():round()
+ local mh = camera:screen_to_world(Pos:make(love.mouse.getPosition())):to_hex():round()
if false== chunk:at(mh) and love.mouse.isDown(1) then
chunk:set_at(mh,true)
-- print(mh,true)
@@ -108,7 +110,7 @@ function love.update(dt)
local op = j.t
if op == "join" then
local pl = j.pl
- remote_players[pl.id] = {pos=coords.Pos.make(pl.x,pl.y),color=pl.color,id=pl.id}
+ remote_players[pl.id] = {pos=coords.Pos:make(pl.x,pl.y),color=pl.color,id=pl.id}
elseif op == "leave" then
local id = j.id
remote_players[id]=nil
@@ -119,11 +121,11 @@ function love.update(dt)
remote_players[id].pos.y = y
elseif op == "you" then
local pl = j.pl
- local_player = {pos=coords.Pos.make(pl.x,pl.y),color=pl.color,id=pl.id}
+ local_player = {pos=coords.Pos:make(pl.x,pl.y),color=pl.color,id=pl.id}
elseif op == "chunk" then
chunk = Chunk.from_packet_data(j)
elseif op == "settile" then
- local h = coords.Hex.make(j.q,j.r)
+ local h = coords.Hex:make(j.q,j.r)
chunk:set_at(h,j.tile)
end
end
@@ -152,12 +154,12 @@ function love.draw()
love.graphics.setColor(1,0,0)
love.graphics.rectangle("fill",0,0,1,1)
- local sm = Pos.make(love.mouse.getPosition())
+ local sm = Pos:make(love.mouse.getPosition())
local wm = camera:screen_to_world(sm)
local hm = wm:to_hex()
love.graphics.origin()
- if f3mode and local_player then
+ if _G.debugmode and local_player then
util.print_good({
"ms "..tostring(sm),
"mw "..tostring(wm),