Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

-- Export Flash actionscript
-- Thanks to Andre Michelle for the idea


function main ()
 if mappy.msgBox ("Export Flash actionscript", "This will export the current layer as an actionscript (anims are replaced with block 0)\n\nRun the script (you will be prompted for a filename to save as)?", mappy.MMB_OKCANCEL, mappy.MMB_ICONQUESTION) == mappy.MMB_OK then

  local w = mappy.getValue(mappy.MAPWIDTH)
  local h = mappy.getValue(mappy.MAPHEIGHT)

  if (w == 0) then
   mappy.msgBox ("Export Flash actionscript", "You need to load or create a map first", mappy.MMB_OK, mappy.MMB_ICONINFO)
  else

   local isok,asname = mappy.fileRequester (".", "Flash actionscript (*.as)", "*.as", mappy.MMB_SAVE)
   if isok == mappy.MMB_OK then

    if (not (string.sub (string.lower (asname), -3) == ".as")) then
     asname = asname .. ".as"
    end

    local isok,adjust = mappy.doDialogue ("Export Flash actionscript", "Adjust exported values by:", "0", mappy.MMB_DIALOGUE1)
    if isok == mappy.MMB_OK then

     adjust = tonumber (adjust)
     outas = io.open (asname, "w")
     outas:write ("var map = [\n");
     local y = 0
     while y < h do
      outas:write ("[")
      local x = 0
      while x < w do
       local mapval = mappy.getBlockValue (mappy.getBlock (x, y), mappy.BLKBG)
       mapval = mapval + adjust
       if mapval < 0 then
        mapval = 0
       end
       outas:write (tostring(mapval))
       if x < (w-1) then
        outas:write (",")
       else
        if y < (h-1) then
         outas:write ("],\n")
        else
         outas:write ("]\n")
         end
       end
      x = x + 1
      end
      y = y + 1
     end
     outas:write ("]\n")
     outas:close ()

    end
   end
  end
 end
end

test, errormsg = pcall( main )
if not test then
    mappy.msgBox("Error ...", errormsg, mappy.MMB_OK, mappy.MMB_ICONEXCLAMATION)
end