summaryrefslogtreecommitdiff
path: root/love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua
diff options
context:
space:
mode:
Diffstat (limited to 'love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua')
-rw-r--r--love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua61
1 files changed, 61 insertions, 0 deletions
diff --git a/love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua b/love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua
new file mode 100644
index 0000000..9059584
--- /dev/null
+++ b/love2dToAPK/tools/tools/zbstudio-old-win/interpreters/love2d.lua
@@ -0,0 +1,61 @@
+-- Copyright 2011-12 Paul Kulchenko, ZeroBrane LLC
+
+local love2d
+local win = ide.osname == "Windows"
+local mac = ide.osname == "Macintosh"
+
+return {
+ name = "LÖVE",
+ description = "LÖVE game engine",
+ api = {"baselib", "love2d"},
+ frun = function(self,wfilename,rundebug)
+ love2d = love2d or ide.config.path.love2d -- check if the path is configured
+ if not love2d then
+ local sep = win and ';' or ':'
+ local default =
+ win and (GenerateProgramFilesPath('love', sep)..sep)
+ or mac and ('/Applications/love.app/Contents/MacOS'..sep)
+ or ''
+ local path = default
+ ..(os.getenv('PATH') or '')..sep
+ ..(GetPathWithSep(self:fworkdir(wfilename)))..sep
+ ..(os.getenv('HOME') and GetPathWithSep(os.getenv('HOME'))..'bin' or '')
+ local paths = {}
+ for p in path:gmatch("[^"..sep.."]+") do
+ love2d = love2d or GetFullPathIfExists(p, win and 'love.exe' or 'love')
+ table.insert(paths, p)
+ end
+ if not love2d then
+ DisplayOutputLn("Can't find love2d executable in any of the following folders: "
+ ..table.concat(paths, ", "))
+ return
+ end
+ end
+
+ if not GetFullPathIfExists(self:fworkdir(wfilename), 'main.lua') then
+ DisplayOutputLn(("Can't find 'main.lua' file in the current project folder: '%s'.")
+ :format(self:fworkdir(wfilename)))
+ return
+ end
+
+ if rundebug then
+ DebuggerAttachDefault({runstart = ide.config.debugger.runonstart == true})
+ end
+
+ -- suppress hiding ConsoleWindowClass as this is used by Love console
+ local uhw = ide.config.unhidewindow
+ local cwc = uhw and uhw.ConsoleWindowClass
+ if uhw then uhw.ConsoleWindowClass = 0 end
+
+ local params = ide.config.arg.any or ide.config.arg.love2d
+ local cmd = ('"%s" "%s"%s%s'):format(love2d, self:fworkdir(wfilename),
+ params and " "..params or "", rundebug and ' -debug' or '')
+ -- CommandLineRun(cmd,wdir,tooutput,nohide,stringcallback,uid,endcallback)
+ return CommandLineRun(cmd,self:fworkdir(wfilename),true,true,nil,nil,
+ function() if uhw then uhw.ConsoleWindowClass = cwc end end)
+ end,
+ hasdebugger = true,
+ fattachdebug = function(self) DebuggerAttachDefault() end,
+ scratchextloop = true,
+ takeparameters = true,
+}