mirror of
https://github.com/rayaman/multi.git
synced 2026-09-05 07:27:35 -04:00
Added intergration loveManager
Adds multi.intergrations.loveManager,lua Created an example file for you to look at
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
function gui:SetImage(i)
|
||||
if type(i)=="string" then
|
||||
self.Image=love.graphics.newImage(i)
|
||||
else
|
||||
self.Image=i
|
||||
end
|
||||
if self.Image~=nil then
|
||||
self.ImageHeigth=self.Image:getHeight()
|
||||
self.ImageWidth=self.Image:getWidth()
|
||||
self.Quad=love.graphics.newQuad(0,0,self.width,self.height,self.ImageWidth,self.ImageHeigth)
|
||||
end
|
||||
return self.ImageWidth,self.ImageHeigth
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
function gui:UpdateImage()
|
||||
self.ImageHeigth=self.Image:getHeight()
|
||||
self.ImageWidth=self.Image:getWidth()
|
||||
self.Quad=love.graphics.newQuad(0,0,self.width,self.height,self.ImageWidth,self.ImageHeigth)
|
||||
end
|
||||
@@ -0,0 +1,20 @@
|
||||
function gui:getTile(i,x,y,w,h)-- returns imagedata
|
||||
if type(i)=="string" then
|
||||
i=love.graphics.newImage(i)
|
||||
elseif type(i)=="userdata" then
|
||||
-- do nothing
|
||||
elseif string.find(self.Type,"Image",1,true) then
|
||||
local i,x,y,w,h=self.Image,i,x,y,w
|
||||
else
|
||||
error("getTile invalid args!!! Usage: ImageElement:getTile(x,y,w,h) or gui:getTile(imagedata,x,y,w,h)")
|
||||
end
|
||||
local iw,ih=i:getDimensions()
|
||||
local id,_id=i:getData(),love.image.newImageData(w,h)
|
||||
for _x=x,w+x-1 do
|
||||
for _y=y,h+y-1 do
|
||||
--
|
||||
_id:setPixel(_x-x,_y-y,id:getPixel(_x,_y))
|
||||
end
|
||||
end
|
||||
return love.graphics.newImage(_id)
|
||||
end
|
||||
@@ -0,0 +1,57 @@
|
||||
function gui:newAnim(file,delay, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local x,y,w,h,sx,sy,sw,sh=filter(file, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("ImageAnimation",file, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
c.Visibility=0
|
||||
c.ImageVisibility=1
|
||||
c.delay=delay or .05
|
||||
c.files={}
|
||||
c.AnimStart={}
|
||||
c.AnimEnd={}
|
||||
local _files=alphanumsort(love.filesystem.getDirectoryItems(file))
|
||||
for i=1,#_files do
|
||||
if string.sub(_files[i],-1,-1)~="b" then
|
||||
table.insert(c.files,love.graphics.newImage(file.."/".._files[i]))
|
||||
end
|
||||
end
|
||||
c.step=multi:newTStep(1,#c.files,1,c.delay)
|
||||
c.step.parent=c
|
||||
c.rotation=0
|
||||
c.step:OnStart(function(step)
|
||||
for i=1,#step.parent.AnimStart do
|
||||
step.parent.AnimStart[i](step.parent)
|
||||
end
|
||||
end)
|
||||
c.step:OnStep(function(pos,step)
|
||||
step.parent:SetImage(step.parent.files[pos])
|
||||
end)
|
||||
c.step:OnEnd(function(step)
|
||||
for i=1,#step.parent.AnimEnd do
|
||||
step.parent.AnimEnd[i](step.parent)
|
||||
end
|
||||
end)
|
||||
function c:OnAnimStart(func)
|
||||
table.insert(self.AnimStart,func)
|
||||
end
|
||||
function c:OnAnimEnd(func)
|
||||
table.insert(self.AnimEnd,func)
|
||||
end
|
||||
function c:Pause()
|
||||
self.step:Pause()
|
||||
end
|
||||
function c:Resume()
|
||||
self.step:Resume()
|
||||
end
|
||||
function c:Reset()
|
||||
self.step.pos=1
|
||||
end
|
||||
function c:getFrames()
|
||||
return #self.files
|
||||
end
|
||||
function c:getFrame()
|
||||
return self.step.pos
|
||||
end
|
||||
function c:setFrame(n)
|
||||
return self:SetImage(self.files[n])
|
||||
end
|
||||
return c
|
||||
end
|
||||
@@ -0,0 +1,52 @@
|
||||
function gui:newAnimFromData(data,delay, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
x,y,w,h,sx,sy,sw,sh=filter(x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("ImageAnimation","FromFile", x, y, w, h, sx ,sy ,sw ,sh)
|
||||
c.Visibility=0
|
||||
c.ImageVisibility=1
|
||||
c.delay=delay or .05
|
||||
c.files=data
|
||||
c.AnimStart={}
|
||||
c.AnimEnd={}
|
||||
c:SetImage(c.files[1])
|
||||
c.step=multi:newTStep(1,#c.files,1,c.delay)
|
||||
c.step.parent=c
|
||||
c.rotation=0
|
||||
c.step:OnStart(function(step)
|
||||
for i=1,#step.parent.AnimStart do
|
||||
step.parent.AnimStart[i](step.parent)
|
||||
end
|
||||
end)
|
||||
c.step:OnStep(function(pos,step)
|
||||
step.parent:SetImage(step.parent.files[pos])
|
||||
end)
|
||||
c.step:OnEnd(function(step)
|
||||
for i=1,#step.parent.AnimEnd do
|
||||
step.parent.AnimEnd[i](step.parent)
|
||||
end
|
||||
end)
|
||||
function c:OnAnimStart(func)
|
||||
table.insert(self.AnimStart,func)
|
||||
end
|
||||
function c:OnAnimEnd(func)
|
||||
table.insert(self.AnimEnd,func)
|
||||
end
|
||||
function c:Pause()
|
||||
self.step:Pause()
|
||||
end
|
||||
function c:Resume()
|
||||
self.step:Resume()
|
||||
end
|
||||
function c:Reset()
|
||||
self.step.pos=1
|
||||
end
|
||||
function c:getFrames()
|
||||
return #self.files
|
||||
end
|
||||
function c:getFrame()
|
||||
return self.step.pos
|
||||
end
|
||||
function c:setFrame(n)
|
||||
return self:SetImage(self.files[n])
|
||||
end
|
||||
return c
|
||||
end
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
function gui:newAnimFromTiles(file,xd,yd,delay, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
x,y,w,h,sx,sy,sw,sh=filter(file, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("ImageAnimation",file, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local im=love.graphics.newImage(file)
|
||||
local _x,_y=im:getDimensions()
|
||||
c.Visibility=0
|
||||
c.ImageVisibility=1
|
||||
c.delay=delay or .05
|
||||
c.files={}
|
||||
c.AnimStart={}
|
||||
c.AnimEnd={}
|
||||
for i=0,_y/yd-1 do
|
||||
for j=0,_x/xd-1 do
|
||||
table.insert(c.files,gui:getTile(im,j*xd,i*yd,xd,yd))
|
||||
end
|
||||
end
|
||||
c:SetImage(c.files[1])
|
||||
c.step=multi:newTStep(1,#c.files,1,c.delay)
|
||||
c.step.parent=c
|
||||
c.rotation=0
|
||||
c.step:OnStart(function(step)
|
||||
for i=1,#step.parent.AnimStart do
|
||||
step.parent.AnimStart[i](step.parent)
|
||||
end
|
||||
end)
|
||||
c.step:OnStep(function(pos,step)
|
||||
step.parent:SetImage(step.parent.files[pos])
|
||||
end)
|
||||
c.step:OnEnd(function(step)
|
||||
for i=1,#step.parent.AnimEnd do
|
||||
step.parent.AnimEnd[i](step.parent)
|
||||
end
|
||||
end)
|
||||
function c:OnAnimStart(func)
|
||||
table.insert(self.AnimStart,func)
|
||||
end
|
||||
function c:OnAnimEnd(func)
|
||||
table.insert(self.AnimEnd,func)
|
||||
end
|
||||
function c:Pause()
|
||||
self.step:Pause()
|
||||
end
|
||||
function c:Resume()
|
||||
self.step:Resume()
|
||||
end
|
||||
function c:Reset()
|
||||
self.step.pos=1
|
||||
end
|
||||
function c:getFrames()
|
||||
return #self.files
|
||||
end
|
||||
function c:getFrame()
|
||||
return self.step.pos
|
||||
end
|
||||
function c:setFrame(n)
|
||||
return self:SetImage(self.files[n])
|
||||
end
|
||||
return c
|
||||
end
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
function gui:newFullImageLabel(i,name)
|
||||
return self:newImageLabel(i,name,0,0,0,0,0,0,1,1)
|
||||
end
|
||||
@@ -0,0 +1,25 @@
|
||||
function gui:newImageButton(i,name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("ImageButton",name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
if type(i)=="string" then
|
||||
c.Image=love.graphics.newImage(i)
|
||||
else
|
||||
c.Image=i
|
||||
end
|
||||
c.Visibility=0
|
||||
c.ImageVisibility=1
|
||||
c.rotation=0
|
||||
if c.Image~=nil then
|
||||
c.ImageHeigth=c.Image:getHeight()
|
||||
c.ImageHeight=c.Image:getHeight()
|
||||
c.ImageWidth=c.Image:getWidth()
|
||||
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
|
||||
end
|
||||
c:OnEnter(function()
|
||||
love.mouse.setCursor(_GuiPro.CursorH)
|
||||
end)
|
||||
c:OnExit(function()
|
||||
love.mouse.setCursor(_GuiPro.CursorN)
|
||||
end)
|
||||
return c
|
||||
end
|
||||
@@ -0,0 +1,18 @@
|
||||
function gui:newImageLabel(i,name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("ImageLabel",name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
if type(i)=="string" then
|
||||
c.Image=love.graphics.newImage(i)
|
||||
else
|
||||
c.Image=i
|
||||
end
|
||||
c.Visibility=0
|
||||
c.ImageVisibility=1
|
||||
c.rotation=0
|
||||
if c.Image~=nil then
|
||||
c.ImageHeigth=c.Image:getHeight()
|
||||
c.ImageWidth=c.Image:getWidth()
|
||||
c.Quad=love.graphics.newQuad(0,0,w,h,c.ImageWidth,c.ImageHeigth)
|
||||
end
|
||||
return c
|
||||
end
|
||||
@@ -0,0 +1,62 @@
|
||||
function gui:newVideo(name,i,x,y,w,h,sx,sy,sw,sh)
|
||||
x,y,w,h,sx,sy,sw,sh=filter(name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
local c=self:newBase("Video",name, x, y, w, h, sx ,sy ,sw ,sh)
|
||||
if type(i)=="string" then
|
||||
c.Video=love.graphics.newVideo(i)
|
||||
else
|
||||
c.Video=i
|
||||
end
|
||||
c.Visibility=0
|
||||
c.VideoVisibility=1
|
||||
c.rotation=0
|
||||
if c.Video~=nil then
|
||||
c.VideoHeigth=c.Video:getHeight()
|
||||
c.VideoWidth=c.Video:getWidth()
|
||||
c.Quad=love.graphics.newQuad(0,0,w,h,c.VideoWidth,c.VideoHeigth)
|
||||
end
|
||||
c.funcV={}
|
||||
function c:Play()
|
||||
self.handStart=true
|
||||
self.Video:play()
|
||||
end
|
||||
function c:Pause()
|
||||
self.Video:pause()
|
||||
end
|
||||
c.Resume=c.Play
|
||||
function c:Stop()
|
||||
self.handStart=false
|
||||
self:Pause()
|
||||
self:Rewind()
|
||||
for i=1,# self.funcV do
|
||||
self.funcV[i](self)
|
||||
end
|
||||
end
|
||||
function c:OnVideoStopped(func)
|
||||
table.insert(self.funcV,func)
|
||||
end
|
||||
function c:Rewind()
|
||||
self.Video:rewind()
|
||||
end
|
||||
function c:Restart()
|
||||
self:Rewind()
|
||||
self:Play()
|
||||
end
|
||||
function c:Seek(o)
|
||||
self.Video:seek(o)
|
||||
end
|
||||
function c:Tell()
|
||||
self.Video:tell()
|
||||
end
|
||||
function c:SetFilter(min, mag, anisotropy)
|
||||
self.Video:setFilter(min, mag, anisotropy)
|
||||
end
|
||||
function c:IsPlaying()
|
||||
return self.Video:isPlaying()
|
||||
end
|
||||
c:OnUpdate(function(self)
|
||||
if self.Video:isPlaying()==false and self.handStart == true then
|
||||
self:Stop()
|
||||
end
|
||||
end)
|
||||
return c
|
||||
end
|
||||
Reference in New Issue
Block a user