Advertisement
Pirnogion

layerobj

Nov 24th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.35 KB | None | 0 0
  1. ------------------------
  2. -- Object: tLayer     --
  3. -- Author:  JaggerDer --
  4. -- Created: --.--.14  --
  5. ------------------------
  6.  
  7. tLayer = {}
  8.  
  9. function tLayer:Init(anWidth, anHeight, asName, abVis, abLck)
  10.  if (type(anWidth) ~= "number" or type(anHeight) ~= "number") then
  11.   error("Error: expected number, got " .. type(anWidth) or type(anHeight) .. ".")
  12.  elseif (type(asName) ~= "string") then
  13.   error("Error: expected string, got " .. type(asName) .. ".")
  14.  end
  15.  
  16.  tLayer = {}
  17.  
  18.  tLayer.tTextSpace = {}
  19.  tLayer.tTextColorSpace = {}
  20.  tLayer.tColorSpace = {}
  21.  
  22.  tLayer.sName      = asName   or "Default"
  23.  tLayer.nWidth     = anWidth  or 1
  24.  tLayer.nHeight    = anHeight or 1
  25.  tLayer.nShiftX    = 0
  26.  tLayer.nShiftY    = 0
  27.  tLayer.bIsVisible = abVis    or true
  28.  tLayer.bIsLocked  = abLck    or false
  29.  
  30.  for y = 1, tLayer.nHeight, 1 do
  31.    tLayer.tColorSpace[y] = {}
  32.    tLayer.tTextSpace[y] = {}
  33.    tLayer.tTextColorSpace[y] = {}
  34.    for x = 1, tLayer.nWidth, 1 do
  35.     tLayer.tColorSpace[y][x] = 0
  36.     tLayer.tTextSpace[y][x] = " "
  37.     tLayer.tTextColorSpace[y][x] = 0
  38.    end
  39.  end
  40.  
  41.  setmetatable(tLayer, self)
  42.  self.__index = self
  43.  
  44.  return tLayer
  45. end
  46.  
  47. function tLayer:Remove()
  48.  self.sName = nil
  49.  self.tTextSpace = nil
  50.  self.tTextColorSpace = nil
  51.  self.tColorSpace = nil
  52.  
  53.  return true
  54. end
  55.  
  56. function tLayer:GetParameters()
  57.  return self.sName, self.nWidth, self.nHeight, self.nShiftX, self.nShiftY, self.bIsVisible, self.bIsLocked
  58. end
  59.  
  60. function tLayer:Shift(anShiftX, anShiftY)
  61.  self.nShiftX = anShiftX
  62.  self.nShiftY = anShiftY
  63. end
  64.  
  65. function tLayer:SetPixel(anX, anY, asText, anTextColor, anColor)
  66.  if (string.len(asText) > 1) then
  67.   for i = 1, string.len(asText), 1 do
  68.    self.tTextSpace[anY][anX+i-1] = string.char(string.byte(asText, i))
  69.    self.tTextColorSpace[anY][anX+i-1] = anTextColor
  70.    self.tColorSpace[anY][anX+i-1] = anColor
  71.   end
  72.  else
  73.   self.tTextSpace[anY][anX] = asText
  74.   self.tTextColorSpace[anY][anX] = anTextColor
  75.   self.tColorSpace[anY][anX] = anColor
  76.  end
  77. end
  78.  
  79. function tLayer:GetPixel(anX, anY)
  80.  return self.tTextSpace[anY][anX], self.tTextColorSpace[anY][anX], self.tColorSpace[anY][anX]
  81. end
  82.  
  83. function tLayer:SetVisAndLock(vis, lock)
  84.     self.bIsVisible = vis
  85.     self.self.bIsLocked = lock
  86. end
  87.  
  88. function tLayer:ClearLayer()
  89.  self.tTextSpace = {}
  90.  self.tTextColorSpace = {}
  91.  self.tColorSpace = {}
  92.  
  93.  return true
  94. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement