mirror of
				https://github.com/Reuh/ubiquitousse.git
				synced 2025-10-27 17:19:31 +00:00 
			
		
		
		
	Addded basic ctrµLua backend, only load backend for loaded modules
This commit is contained in:
		
							parent
							
								
									cb14434567
								
							
						
					
					
						commit
						403aa80c46
					
				
					 2 changed files with 70 additions and 4 deletions
				
			
		|  | @ -1,2 +1,62 @@ | |||
| -- TODO: everything | ||||
| error("TODO level over 9000") | ||||
| --- ctrµLua backend 0.0.1 for Abstract. | ||||
| -- Provides a partial abstract API. Still a lot to implement. | ||||
| -- Made for some ctrµLua version and abstract 0.0.1. | ||||
| -- See `abstract` for Abstract API. | ||||
| 
 | ||||
| -- General | ||||
| local version = "0.0.1" | ||||
| 
 | ||||
| -- Require stuff | ||||
| local abstract = require((...):match("^(.-abstract)%.")) | ||||
| local ctr = require("ctr") | ||||
| local gfx = require("gfx") | ||||
| 
 | ||||
| -- Version compatibility warning | ||||
| do | ||||
| 	local function checkCompat(stuffName, expectedVersion, actualVersion) | ||||
| 		if actualVersion ~= expectedVersion then | ||||
| 			local txt = ("Abstract ctrµLua backend version "..version.." was made for %s %s but %s is used!\nThings may not work as expected.") | ||||
| 			            :format(stuffName, expectedVersion, actualVersion) | ||||
| 			print(txt) | ||||
| 			for i=0,300 do | ||||
| 				gfx.start(gfx.TOP) | ||||
| 					gfx.wrappedText(0, 0, txt, gfx.TOP_WIDTH) | ||||
| 				gfx.stop() | ||||
| 				gfx.render() | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| 	-- checkCompat("ctrµLua", "", ("%s.%s.%s"):format(love.getVersion())) -- not really a version, just get the latest build | ||||
| 	checkCompat("abstract", "0.0.1", abstract.version) | ||||
| end | ||||
| 
 | ||||
| -- Redefine all functions in tbl which also are in toAdd, so when used they call the old function (in tbl) and then the new (in toAdd). | ||||
| local function add(tbl, toAdd) | ||||
| 	for k,v in pairs(toAdd) do | ||||
| 		local old = tbl[k] | ||||
| 		tbl[k] = function(...) | ||||
| 			old(...) | ||||
| 			return v(...) | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| -- abstract | ||||
| abstract.backend = "ctrulua" | ||||
| 
 | ||||
| -- abstract.event: TODO | ||||
| 
 | ||||
| -- abstract.draw: TODO | ||||
| 
 | ||||
| -- abstract.audio: TODO | ||||
| 
 | ||||
| -- abstract.time | ||||
| if abstract.time then | ||||
| add(abstract.time, { | ||||
| 	get = function() | ||||
| 		return ctr.time() / 1000 | ||||
| 	end | ||||
| }) | ||||
| end | ||||
| 
 | ||||
| -- abstract.input: TODO | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ end | |||
| abstract.backend = "love" | ||||
| 
 | ||||
| -- abstract.event | ||||
| do | ||||
| if abstract.event then | ||||
| local updateDefault = abstract.event.update | ||||
| abstract.event.update = function() end | ||||
| function love.update(dt) | ||||
|  | @ -83,6 +83,7 @@ end | |||
| end | ||||
| 
 | ||||
| -- abstract.draw | ||||
| if abstract.draw then | ||||
| local defaultFont = love.graphics.getFont() | ||||
| add(abstract.draw, { | ||||
| 	init = function(params) | ||||
|  | @ -138,8 +139,10 @@ function love.resize(width, height) | |||
| 		abstract.draw.height = height | ||||
| 	end | ||||
| end | ||||
| end | ||||
| 
 | ||||
| -- abstract.audio | ||||
| if abstract.audio then | ||||
| add(abstract.audio, { | ||||
| 	-- TODO: doc | ||||
| 	load = function(filepath) | ||||
|  | @ -151,16 +154,19 @@ add(abstract.audio, { | |||
| 		} | ||||
| 	end | ||||
| }) | ||||
| end | ||||
| 
 | ||||
| -- abstract.time | ||||
| if abstract.time then | ||||
| add(abstract.time, { | ||||
| 	get = function() | ||||
| 		return love.timer.getTime() | ||||
| 	end | ||||
| }) | ||||
| end | ||||
| 
 | ||||
| -- abstract.input | ||||
| do | ||||
| if abstract.input then | ||||
| local buttonsInUse = {} | ||||
| local axesInUse = {} | ||||
| function love.keypressed(key, scancode, isrepeat) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Reuh
						Reuh