Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/media/lua/BuildingObjects/tag.lua b/media/lua/BuildingObjects/tag.lua
- index d9e6a36..5d5a602 100644
- --- a/media/lua/BuildingObjects/tag.lua
- +++ b/media/lua/BuildingObjects/tag.lua
- @@ -9,9 +9,13 @@ Tag = ISBuildingObject:derive("Tag");
- -- Launch the placing tag action
- --
- function Tag:create(x, y, z, north, sprite)
- -
- + -- if player has dropped or unequipped spray can, disallow using spraypaint
- + -- (you could drop a spray can on the ground and continue using it)
- + -- probably a better idea to listen for an event than check here after the timed action completes
- + if not self.player:isEquipped(self.sprayCanItem) then
- + self:reset()
- -- Is there enough paint in spray can
- - if math.floor(self.sprayCanItem:getUsedDelta()/self.sprayCanItem:getUseDelta()) > 0 then
- + elseif math.floor(self.sprayCanItem:getUsedDelta()/self.sprayCanItem:getUseDelta()) > 0 then
- local cell = getWorld():getCell();
- local gridSquare = cell:getGridSquare(x, y, z);
- local tagTile = IsoObject.new(gridSquare, sprite, "tag");
- @@ -26,11 +30,6 @@ function Tag:create(x, y, z, north, sprite)
- tagTile:getSprite():setTintMod(colorInfo);
- gridSquare:AddTileObject(tagTile);
- - spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":x"] = x;
- - spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":y"] = y;
- - spraypaint.gameModData["spraypaint:" .. spraypaint.gameModData['spraypaint:indexTags'] .. ":z"] = z;
- - spraypaint.gameModData['spraypaint:indexTags'] = spraypaint.gameModData['spraypaint:indexTags'] + 1;
- -
- -- Use paint, so decreasing quantity of paint in spraycan
- self.sprayCanItem:Use();
- else
- diff --git a/media/lua/spraypaint.lua b/media/lua/spraypaint.lua
- index a8b6892..25c2b5b 100644
- --- a/media/lua/spraypaint.lua
- +++ b/media/lua/spraypaint.lua
- @@ -54,51 +54,18 @@ spraypaint.loadTextures = function()
- getTexture('tz_TRIANGLE_Floor.png');
- end
- -
- ----
- ---
- ---
- -spraypaint.loadTags = function()
- - spraypaint.gameModData = GameTime:getInstance():getModData();
- -
- - if spraypaint.gameModData['spraypaint:indexTags'] == nil then
- - spraypaint.gameModData['spraypaint:indexTags'] = 1;
- - end
- -
- - print('Here we go!');
- -
- - local indexes = {};
- - for iModData,vModData in pairs(spraypaint.gameModData) do
- - print(iModData);
- - for index in string.gmatch(iModData, "^spraypaint:(.+):") do
- - if tonumber(index) then
- - print('COOL');
- - if indexes[tonumber(index)] == nil then
- - indexes[tonumber(index)] = index;
- - end
- - end
- - end
- - end
- -
- - for ind,_ in ipairs(indexes) do
- - local x = spraypaint.gameModData["spraypaint:" .. ind .. ":x"];
- - local y = spraypaint.gameModData["spraypaint:" .. ind .. ":y"];
- - local z = spraypaint.gameModData["spraypaint:" .. ind .. ":z"];
- - local cell = getWorld():getCell();
- - local gridSquare = cell:getGridSquare(x, y, z);
- -
- - for i = 0, gridSquare:getObjects():size() - 1 do
- - local object = gridSquare:getObjects():get(i);
- - local objectModData = object:getModData();
- -
- - if objectModData['isTag'] == 'true' then
- - local colorInfo = ColorInfo.new(objectModData['red'], objectModData['green'], objectModData['blue'], 1.0);
- - object:getSprite():setTintMod(colorInfo);
- +-- Using the GridSquare load event instead of a global table (which will try to set colors on unloaded grid squares)
- +Events.LoadGridsquare.Add(function (gridSquare)
- + for i = 0,gridSquare:getObjects():size()-1 do
- + local obj = gridSquare:getObjects():get(i)
- + if obj ~= nil and obj:getName() == 'tag' then
- + local md = obj:getModData()
- + if md ~= nil and md['isTag'] == 'true' then
- + obj:getSprite():setTintMod(ColorInfo.new(md['red'], md['green'], md['blue'], 1.0))
- end
- end
- end
- -end
- +end)
- -Events.OnGameBoot.Add(spraypaint.loadTextures);
- -Events.OnGameStart.Add(spraypaint.loadTags);
- \ No newline at end of file
- +Events.OnGameBoot.Add(spraypaint.loadTextures);
- \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement