Planimeter Game Engine 2D - LÖVE-based game engine for Lua
map:initializePhysics()
gui.hudframe
to enginegui.hudprofiler
for profiling engine and game performancegui.hudvoice
HUD indicatorgui.watch
GUI control for watching Lua expressionsgui.box
test script to show off new gui.createElement()
usageandrewmcwatters/lclass
vector:approximately()
for floating point equality in multiplayervector:dot()
vector:normalize()
vector.__div()
camera
zoom behaviorcanvas
to retain arguments between invalidationscanvas:remove()
, canvas:__gc()
, and fullscreencanvas:__gc()
to fix
memory leaks with canvas
wrapperframebuffers
have been refactored to canvases
gui.createElement()
gui.panel
size
accessor to dimensions
gui.box
adherence to CSS box modelgui.text
gui.box
panel._drawcalls
and panel._invalidations
for profilingpanel:getRootPanel()
panel:getPrevSibling()
panel:getNextSibling()
panel:removeCanvas()
voice_loopback
console variableengine.client.broadcastVoiceRecording()
engine.client.sendVoiceRecording()
engine.client.startVoiceRecording()
engine.client.stopVoiceRecording()
+voice
and -voice
console commandsonTick
callback to tick
+
prefixtoboolean()
lua_watch
console variable for watching Lua expressionsconcommand.run()
to set console variablesconcommand.run()
to return boolean on successful dispatchr_window_fullscreentype
console variablecharacter
movementvelocity
network variable to entitiesentity:broadcastNetworkVarChanges()
(server)entity:getVelocity()
sv_friction
console variableentity:insertNetworkVarChange()
entity:interpolate()
entity
as a networkable variable typeentity:onNetworkVarReceived()
entity:onPostWorldUpdate()
entity:removeInterpolationBuffer()
entity:startTouch()
and entity:endTouch()
callbacksplayer
moveSpeed
network variableplayer._idle
player:keypressed()
and player:keyreleased()
player:applyInput()
player:isPredictedPosition()
player
usercmd
payload dispatchplayer
mass
player
movementplayer:updatePredictionBuffer()
r_draw_world
console variablemap.getGroundBody()
map:initializePhysics()
trigger_transition
entitymath.fepsilon
math.approximately()
for floating point equality in multiplayermath.pointonline()
math.pointonlinesegment()
number
payload key typefloat
payload key typemove
data to usercmd
payloadsvoice
payloadtable.keys()
typelenvalues.bytesToFloat()
typelenvalues.floatToBytes()
typelenvalues.shortToBytes()
short
payload key typecanvas
and fullscreencanvas
classes which invalidate on window resizinggui.box
class based on the CSS box model as defined in "Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification"gui.text
as a gui.box
alternative to the Win32-styled gui.label
classsound
is now source
to align more closely to LÖVE's API naming conventionsregion
is now map
to align more closely to traditional video game level design terminologygame.client.gui.mainmenu
chat.addText()
that would occur before the chat HUD was availablegui.box
instead of gui.panel
gui._blurFramebuffer
is now gui._translucencyFramebuffer
gui.accessor()
nearest
, nearest
on load
sprite:setFilter()
fps_max
defaulted to 300
convar
flag archive
to save console variablesconvar:isFlagSet( flag )
entity:setDrawShadow( drawShadow )
and entity:shouldDrawShadow()
player:isKeyPressed( button )
and player:isKeyReleased( button )
which detect IN_*
enumerations in multiplayerpayload:sendToServer()
and payload:broadcast()
table.map( t, callback )
onPlayerInitialSpawn
callback in which default panels would be created any time any player, and not just the localplayer
, initially spawnedonPlayerUse
game callbackgaussianblur
shaderengine/server/init.lua
when initializing players on maps with no spawnpointscharacter
client-side animation prediction handlingcharacter
tile movemententity:isPredicted()
and entity:setPredicted( predicted )
to enable positional history tracking for future client-side prediction reconciliationentity:isOnTile()
to determine if entity
s are in-between tiles or notregion.pointinrect( px, py, x, y, width, height )
which is bottom-left inclusive to distinguish between math.pointinrect()
's top-left inclusive implementation for GUI usageentity
s not updating their region
reference when crossing level streaming boundariesplayer:getGraphicsBounds()
implementationplayer:isMoveKeyDown()
cl_server_reconciliation
console variabletrigger_transition
level streaming implementationpath
interface when pathfinding in dedicated serversregion:getWorld()
to region.getWorld()
region:cleanUp()
to region:cleanup()
region:getFilename()
not referring to the appropriate pathregion:getGidsAtPosition( position )
not converting positions to local region spaceregion:initializeWorld()
to region.initializeWorld()
region:isTileWalkableAtPosition( position )
now checks nearby regions if the tile is not walkablewalkable
tile properties are now booleans
as defined in newer Tiled versionsregion.tileset
image loading not referring to relative directoriesstring.stripdotdir( path )
to convert paths with dot directories to their relative pathsplayer._commandNumber
for client-side prediction server reconciliationplayer:onMoveTo()
behavior is now predictedcommandNumber
to userCmd
payloadbind.keypressed()
and bind.keyreleased()
passing nil localplayer
throbber.lua
_DEDICATED
host_timescale
console commandaddon.lua
character.lua
character
moveSpeed
network variable is now a representation of pixels per secondcharacter:move()
not integrating timestepr_draw_position
console variable flag to display velocity as wellentity:isMoving()
player:isKeyDown( button )
cl_footsteps
console variableusercmd
payloadpath
module with drawPath
euclidean
to manhattan
not
with == nil
where performing lookups for nil
valuesrequires
accessors
table.tostring( t )
debugoverlay.line( worldIndex, x, y, points, color, duration )
debugoverlay
callsverb
argument to accessor()
toggleconsole
console command behaviorperf_draw_net_graph
console commandpanel:isSiblingMousedOver()
restorePanel()
pattern to real-time scripted panelsgui.textbox()
s not inserting newlinestextbox:updateCursor()
region
s now predictively update on _CLIENT
engine.client.onDisconnect()
cleanup processonTick()
callbackcl_updaterate
console commandengine.server.quit()
cleanup processerror_printer()
sv_updaterate
console commandconvar
to sort console variables in config.cfg
character
movementcharacter:onFinishMove()
character:onMoveTo( position )
entity.requireEntity()
for use in place of require()
when including entity class dependenciesentity.unrequireEntity()
entity.getAll()
for retrieving all available entity scriptsgetModuleFilename()
region
position calculationsregion.roundToGrid( x, y )
entity
region
registrationgui.hudchat
r_draw_position
console commandgui.hudspeechballoons
to expire chat messagesitem:setCollisionBounds( min, max )
gui.textbox()
point()
in favor of love.window.toPixels()
and love.window.getPixelScale()
debugoverlay.rectangle()
not accepting a worldIndex
love-package
env_soundscape
trace
entity:drawBoundingBoxes()
panel:drawBackground()
panel:drawForeground()
mutator()
accessor()
framebuffer:getDesiredWidth()
framebuffer:getDesiredHeight()
panel:preDraw()
panel:postDraw()