Advertisement
Guest User

Untitled

a guest
Jan 4th, 2014
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.97 KB | None | 0 0
  1. diff --git a/media/lua/BuildingObjects/tag.lua b/media/lua/BuildingObjects/tag.lua
  2. index d9e6a36..5d5a602 100644
  3. --- a/media/lua/BuildingObjects/tag.lua
  4. +++ b/media/lua/BuildingObjects/tag.lua
  5. @@ -9,9 +9,13 @@ Tag = ISBuildingObject:derive("Tag");
  6.  -- Launch the placing tag action
  7.  --
  8.  function Tag:create(x, y, z, north, sprite)
  9. -  
  10. +   -- if player has dropped or unequipped spray can, disallow using spraypaint
  11. +   -- (you could drop a spray can on the ground and continue using it)
  12. +   -- probably a better idea to listen for an event than check here after the timed action completes
  13. +   if not self.player:isEquipped(self.sprayCanItem) then
  14. +       self:reset()
  15.  -- Is there enough paint in spray can
  16. -   if math.floor(self.sprayCanItem:getUsedDelta()/self.sprayCanItem:getUseDelta()) > 0 then
  17. +   elseif math.floor(self.sprayCanItem:getUsedDelta()/self.sprayCanItem:getUseDelta()) > 0 then
  18.         local cell = getWorld():getCell();
  19.         local gridSquare = cell:getGridSquare(x, y, z);
  20.         local tagTile = IsoObject.new(gridSquare, sprite, "tag");
  21. @@ -26,11 +30,6 @@ function Tag:create(x, y, z, north, sprite)
  22.         tagTile:getSprite():setTintMod(colorInfo);
  23.         gridSquare:AddTileObject(tagTile);
  24.        
  25. -       spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":x"] = x;
  26. -       spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":y"] = y;
  27. -       spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":z"] = z;
  28. -       spraypaint.gameModData['spraypaint:indexTags'] = spraypaint.gameModData['spraypaint:indexTags'] + 1;
  29. -      
  30.         -- Use paint, so decreasing quantity of paint in spraycan
  31.         self.sprayCanItem:Use();
  32.     else
  33. diff --git a/media/lua/spraypaint.lua b/media/lua/spraypaint.lua
  34. index a8b6892..25c2b5b 100644
  35. --- a/media/lua/spraypaint.lua
  36. +++ b/media/lua/spraypaint.lua
  37. @@ -54,51 +54,18 @@ spraypaint.loadTextures = function()
  38.     getTexture('tz_TRIANGLE_Floor.png');   
  39.  end
  40.  
  41. -
  42. ----
  43. ---
  44. ---
  45. -spraypaint.loadTags = function()
  46. -   spraypaint.gameModData = GameTime:getInstance():getModData();
  47. -  
  48. -   if spraypaint.gameModData['spraypaint:indexTags'] == nil then
  49. -       spraypaint.gameModData['spraypaint:indexTags'] = 1;
  50. -   end
  51. -  
  52. -   print('Here we go!');
  53. -  
  54. -   local indexes = {};
  55. -   for iModData,vModData in pairs(spraypaint.gameModData) do
  56. -       print(iModData);
  57. -       for index in string.gmatch(iModData, "^spraypaint:(.+):") do
  58. -           if tonumber(index) then
  59. -               print('COOL');
  60. -               if indexes[tonumber(index)] == nil then
  61. -                   indexes[tonumber(index)] = index;
  62. -               end
  63. -           end
  64. -       end
  65. -   end
  66. -  
  67. -   for ind,_ in ipairs(indexes) do
  68. -       local x = spraypaint.gameModData["spraypaint:" .. ind .. ":x"];
  69. -       local y = spraypaint.gameModData["spraypaint:" .. ind .. ":y"];
  70. -       local z = spraypaint.gameModData["spraypaint:" .. ind .. ":z"];
  71. -       local cell = getWorld():getCell();
  72. -       local gridSquare = cell:getGridSquare(x, y, z);
  73. -      
  74. -       for i = 0, gridSquare:getObjects():size() - 1 do
  75. -           local object = gridSquare:getObjects():get(i);
  76. -           local objectModData = object:getModData();
  77. -          
  78. -           if objectModData['isTag'] == 'true' then
  79. -               local colorInfo = ColorInfo.new(objectModData['red'], objectModData['green'], objectModData['blue'], 1.0);
  80. -               object:getSprite():setTintMod(colorInfo);
  81. +-- Using the GridSquare load event instead of a global table (which will try to set colors on unloaded grid squares)
  82. +Events.LoadGridsquare.Add(function (gridSquare)
  83. +   for i = 0,gridSquare:getObjects():size()-1 do
  84. +       local obj = gridSquare:getObjects():get(i)
  85. +       if obj ~= nil and obj:getName() == 'tag' then
  86. +           local md = obj:getModData()
  87. +           if md ~= nil and md['isTag'] == 'true' then
  88. +               obj:getSprite():setTintMod(ColorInfo.new(md['red'], md['green'], md['blue'], 1.0))
  89.             end
  90.         end
  91.     end
  92. -end
  93. +end)
  94.  
  95.  
  96. -Events.OnGameBoot.Add(spraypaint.loadTextures);
  97. -Events.OnGameStart.Add(spraypaint.loadTags);
  98. \ No newline at end of file
  99. +Events.OnGameBoot.Add(spraypaint.loadTextures);
  100. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement