optimized tiledata
This commit is contained in:
		
							parent
							
								
									a1bf842cef
								
							
						
					
					
						commit
						3e8a907aa2
					
				| @ -112,48 +112,42 @@ function TileDataInitialize() | ||||
| end | ||||
| 
 | ||||
| function InstanceTile(i,j,id) | ||||
| 		LevelTiles[i][j] = {} | ||||
| 		local tile = LevelTiles[i][j] | ||||
| 		tile.id = id | ||||
| 	LevelTiles[i][j] = {} | ||||
| 	local tile = LevelTiles[i][j] | ||||
| 
 | ||||
| 		for _, Properties in pairs(TileData) do | ||||
| 			if Properties.id == tile.id then | ||||
| 				if type(Properties.overlay) == "table" then | ||||
| 					tile.display_overlay = Properties.overlay[math.random(#Properties.overlay)] | ||||
| 				else | ||||
| 					tile.display_overlay = Properties.overlay | ||||
| 				end | ||||
| 	tile.id = id | ||||
| 	local Properties = TileData[tile.id] | ||||
| 
 | ||||
| 				if type(Properties.force) == "table" then | ||||
| 					tile.display = Properties.force[math.random(#Properties.force)] | ||||
| 				else | ||||
| 					tile.display = Properties.force | ||||
| 				end | ||||
| 			end | ||||
| 	if Properties ~= nil then | ||||
| 		if type(Properties.overlay) == "table" then | ||||
| 			tile.display_overlay = Properties.overlay[math.random(#Properties.overlay)] | ||||
| 		else | ||||
| 			tile.display_overlay = Properties.overlay | ||||
| 		end | ||||
| 
 | ||||
| 		if type(Properties.force) == "table" then | ||||
| 			tile.display = Properties.force[math.random(#Properties.force)] | ||||
| 		else | ||||
| 			tile.display = Properties.force | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| function TileGetType(tile) | ||||
| 	for _, Properties in pairs(TileData) do | ||||
| 		if Properties.id == tile.id then | ||||
| 			return Properties.type | ||||
| 		end | ||||
| 	if TileData[tile.id] ~= nil then | ||||
|   	return TileData[tile.id].type | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| function TileGetDepth(tile) | ||||
| 	for _, Properties in pairs(TileData) do | ||||
| 		if Properties.id == tile.id then | ||||
| 			return Properties.depth | ||||
| 		end | ||||
| 	if TileData[tile.id] ~= nil then | ||||
| 	 	return TileData[tile.id].depth | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| function TileGetLight(tile) | ||||
| 	for _, Properties in pairs(TileData) do | ||||
| 		if Properties.id == tile.id then | ||||
| 			return Properties.light | ||||
| 		end | ||||
| 	if TileData[tile.id] ~= nil then | ||||
| 	 	return TileData[tile.id].light | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| @ -468,55 +462,84 @@ end | ||||
| 
 | ||||
| function AnimateTiles() | ||||
| 	for _, Properties in pairs(TileData) do | ||||
| 		if Properties.animation ~= nil then | ||||
| 		-- calculate subimage | ||||
| 			Properties.current_subimage = Properties.current_subimage + current_dt | ||||
| 			-- cycle image | ||||
| 			if Properties.current_subimage >= Properties.delay then | ||||
| 				Properties.current_subimage = Properties.current_subimage - Properties.delay | ||||
| 				Properties.current_image = Properties.current_image + 1 | ||||
| 			end | ||||
| 		if Properties ~= nil then | ||||
| 			if Properties.animation ~= nil then | ||||
| 			-- calculate subimage | ||||
| 				Properties.current_subimage = Properties.current_subimage + current_dt | ||||
| 				-- cycle image | ||||
| 				if Properties.current_subimage >= Properties.delay then | ||||
| 					Properties.current_subimage = Properties.current_subimage - Properties.delay | ||||
| 					Properties.current_image = Properties.current_image + 1 | ||||
| 				end | ||||
| 
 | ||||
| 			if Properties.current_image > Properties.image_count then | ||||
| 				Properties.current_image = Properties.current_image - Properties.image_count | ||||
| 				if Properties.current_image > Properties.image_count then | ||||
| 					Properties.current_image = Properties.current_image - Properties.image_count | ||||
| 				end | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| function DrawTile(tile,x,y,depth) | ||||
| 	for _, Properties in pairs(TileData) do | ||||
| 		if tile.id == Properties.id then | ||||
| 	local Properties = TileData[tile.id] | ||||
| 
 | ||||
| 			if Properties.animation ~= nil then | ||||
| 				if Properties.imgs[Properties.current_image] ~= nil | ||||
| 				and Properties.depth == depth | ||||
| 				then love.graphics.draw( | ||||
| 					Properties.tileset, | ||||
| 					Properties.imgs[Properties.current_image], | ||||
| 	if Properties ~= nil then | ||||
| 		if Properties.animation ~= nil then | ||||
| 			if Properties.imgs[Properties.current_image] ~= nil | ||||
| 			and Properties.depth == depth | ||||
| 			then love.graphics.draw( | ||||
| 				Properties.tileset, | ||||
| 				Properties.imgs[Properties.current_image], | ||||
| 				x, | ||||
| 				y, | ||||
| 				0, | ||||
| 				tileProperties.scale, | ||||
| 				tileProperties.scale | ||||
| 			) | ||||
| 			end | ||||
| 		elseif Properties.depth == depth then | ||||
| 			if Properties.force ~= nil then | ||||
| 				if Properties.force ~= 0 then | ||||
| 					love.graphics.draw( | ||||
| 					LevelData.tileset, | ||||
| 					TileIndex[tile.display], | ||||
| 					x, | ||||
| 					y, | ||||
| 					0, | ||||
| 					tileProperties.scale, | ||||
| 					tileProperties.scale | ||||
| 				)	end | ||||
| 			elseif Properties.depth == depth then | ||||
| 				if Properties.force ~= nil then | ||||
| 					if Properties.force ~= 0 then | ||||
| 				) | ||||
| 				end | ||||
| 			else | ||||
| 				love.graphics.draw( | ||||
| 					LevelData.tileset, | ||||
| 					TileIndex[tile.id], | ||||
| 					x, | ||||
| 					y, | ||||
| 					0, | ||||
| 					tileProperties.scale, | ||||
| 					tileProperties.scale | ||||
| 				) | ||||
| 			end | ||||
| 		end | ||||
| 
 | ||||
| 		if Properties.overlay ~= nil then | ||||
| 			if Properties.overlay_depth == depth or Properties.overlay_depth == nil and Properties.depth == depth then | ||||
| 				if Properties.overlay_animated then | ||||
| 					local overlay_properties = TileData[Properties.overlay] | ||||
| 					love.graphics.draw( | ||||
| 						LevelData.tileset, | ||||
| 						TileIndex[tile.display], | ||||
| 						overlay_properties.tileset, | ||||
| 						overlay_properties.imgs[overlay_properties.current_image], | ||||
| 						x, | ||||
| 						y, | ||||
| 						0, | ||||
| 						tileProperties.scale, | ||||
| 						tileProperties.scale | ||||
| 					) | ||||
| 					end | ||||
| 				else | ||||
| 					love.graphics.draw( | ||||
| 						LevelData.tileset, | ||||
| 						TileIndex[Properties.id], | ||||
| 						TileIndex[tile.display_overlay], | ||||
| 						x, | ||||
| 						y, | ||||
| 						0, | ||||
| @ -525,41 +548,11 @@ function DrawTile(tile,x,y,depth) | ||||
| 					) | ||||
| 				end | ||||
| 			end | ||||
| 
 | ||||
| 			if Properties.overlay ~= nil then | ||||
| 				if Properties.overlay_depth == depth or Properties.overlay_depth == nil and Properties.depth == depth then | ||||
| 					if Properties.overlay_animated then | ||||
| 						for _, overlay_properties in pairs(TileData) do | ||||
| 							if overlay_properties.id == Properties.overlay then | ||||
| 								love.graphics.draw( | ||||
| 									overlay_properties.tileset, | ||||
| 									overlay_properties.imgs[overlay_properties.current_image], | ||||
| 									x, | ||||
| 									y, | ||||
| 									0, | ||||
| 									tileProperties.scale, | ||||
| 									tileProperties.scale | ||||
| 								) | ||||
| 							end | ||||
| 						end | ||||
| 					else | ||||
| 						love.graphics.draw( | ||||
| 							LevelData.tileset, | ||||
| 							TileIndex[tile.display_overlay], | ||||
| 							x, | ||||
| 							y, | ||||
| 							0, | ||||
| 							tileProperties.scale, | ||||
| 							tileProperties.scale | ||||
| 						) | ||||
| 					end | ||||
| 				end | ||||
| 			end | ||||
| 			--[[ | ||||
| 			love.graphics.setColor(0,0,1) | ||||
| 			love.graphics.print(tostring(tile.display),x+16,y) | ||||
| 			love.graphics.setColor(1,1,1) | ||||
| 			]] | ||||
| 		end | ||||
| 		--[[ | ||||
| 				love.graphics.setColor(0,0,1) | ||||
| 				love.graphics.print(tostring(tile.display),x+16,y) | ||||
| 				love.graphics.setColor(1,1,1) | ||||
| 				]] | ||||
| 	end | ||||
| end | ||||
|  | ||||
| @ -1,80 +1,81 @@ | ||||
| return { | ||||
|     { | ||||
|         id = 1, | ||||
|         type = "whole", | ||||
|         depth = "foreground" | ||||
|     }, | ||||
|     { | ||||
|         id = 2, | ||||
|         type = "emtpy", | ||||
|         depth = "foreground" | ||||
|     }, | ||||
|     { | ||||
|         id = 5, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 6, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 7, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 13, | ||||
|         type = "whole", | ||||
|         depth = "foreground" | ||||
|     }, | ||||
|     { | ||||
|         id = 25, | ||||
|         overlay = {17,19,21,23}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 26, | ||||
|         overlay = {18,20,22,24}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 37, | ||||
|         overlay = {29,31,33,35,42,44,46,48}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 38, | ||||
|         overlay = {30,32,34,36,41,43,45,47}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 49, | ||||
|         overlay = {53,55,57,59}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 50, | ||||
|         overlay = {54,56,58,60}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 61, | ||||
|         overlay = {1}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     }, | ||||
|     { | ||||
|         id = 62, | ||||
|         overlay = {1}, | ||||
|         type = "emtpy", | ||||
|         depth = "background" | ||||
|     } | ||||
| local properties = {} | ||||
| 
 | ||||
| properties[1] = { | ||||
|   type = "whole", | ||||
|   depth = "foreground" | ||||
| } | ||||
| 
 | ||||
| properties[2] = { | ||||
|   type = "emtpy", | ||||
|   depth = "foreground" | ||||
| } | ||||
| 
 | ||||
| properties[5] = { | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[6] = { | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[7] = { | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[13] = { | ||||
|   type = "whole", | ||||
|   depth = "foreground" | ||||
| } | ||||
| 
 | ||||
| properties[25] = { | ||||
|   overlay = {17,19,21,23}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[26] = { | ||||
|   overlay = {18,20,22,24}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[37] = { | ||||
|   overlay = {29,31,33,35,41,43,45,47}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[38] = { | ||||
|   overlay = {30,32,34,36,42,44,46,48}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[49] = { | ||||
|   overlay = {53,55,57,59}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[50] = { | ||||
|   overlay = {54,56,58,60}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[61] = { | ||||
|   overlay = {1}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| properties[62] = { | ||||
|   overlay = {1}, | ||||
|   type = "emtpy", | ||||
|   depth = "background" | ||||
| } | ||||
| 
 | ||||
| return properties | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user