Skip to content

Instantly share code, notes, and snippets.

@loopspace
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save loopspace/10527853 to your computer and use it in GitHub Desktop.
Save loopspace/10527853 to your computer and use it in GitHub Desktop.
Penrose Tiles Release v3.0 -A Penrose tile program.
Penrose Tiles Tab Order Version: 3.0
------------------------------
This file should not be included in the Codea project.
#Main
#ProtoTile
#Tile
#Creator
#Tiles
#InitialiseTiles
#ccConfig
Penrose Tiles Tab Order Version: 1
------------------------------
This file should not be included in the Codea project.
#Main
#ProtoTile
#Tile
#Tiles
#InitialiseTiles
#SavedTiles
#ccConfig
--[[
###########################################
##Codea Community Project Config Settings##
###########################################
##You can use # to comment out a line
##Use 1 for true and 0 for false
###########################################
# Add project info below #
#==========================================
ProjectName: Penrose Tiles
Version: 1.0
Comments: This is quite functionally extensive
Author: Andrew Stacey
##License Info: http://choosealicense.com
##Supported Licneses: MIT, GPL, Apache, NoLicense
License: PublicDomain
#==========================================
###########################################
# Settings #
[Settings]=================================
##Codea Community Configuration settings
##Format: Setting state
Button 1
ParamButton 0
NotifyCCUpdate 1
ResetUserOption 0
AddHeaderInfo 1
Connect 0
[/Settings]================================
###########################################
# Screenshots #
[Screenshots]==============================
##Screenshots from your project.
##Format: url
##Example: http://www.dropbox.com/screenshot.jpg
[/Screenshots]=============================
###########################################
# Video #
[Video]====================================
##Link to a YouTube.com video.
##Format: url
##Example: http://www.youtube.com/videolink
[/Video]===================================
###########################################
# Dependencies #
[Dependencies]=============================
##Include the names of any dependencies here
##Format: Dependency
##Example: Codea Community
[/Dependencies]============================
############################################
# Tabs #
[Tabs]======================================
##Select which tabs are to be uploaded.
##Keyword 'not' excludes a tab or tabs. Keyword 'add' includes a tab or tabs.
##not * will exclude all tabs to allow for individual selection
##not *tab1 will look for any tab with tab1 on the end.
##not tab1* will look for any tab with tab1 at the beginning.
##Format: (add/not)(*)tab(*)
##Example: not Main --this will remove main.
##Example: not *tab1 --this will remove any tab with "tab1" on the end.
##Example: add Main --This will add Main back in.
[/Tabs]=====================================
#############################################
# Assets #
[Assets]=====================================
##Directory, path and url info for any assets besides the standard Codea assets.
##Format: Folder:sprite URL
##Example: Documents:sprite1 http://www.somewebsite.com/img.jpg
[/Assets]====================================
--]]
Creator = class(Tile)
function Creator:isTouchedBy(t,b)
local tv = vec2(t.x,t.y) - self.position - vec2(WIDTH,HEIGHT)
if self.ptile:checkTouch(tv:rotate(-self.angle)) then
if not b then
local tl = Tile({position = tiles:fromScreen(self.position), ptile = self.ptile, scale = self.scale, tint = self.otint})
self.tiles:addTile(tl)
tl.tpoint = tv
self.touchClaiment = self.tiles.touchHandlers[1][1][tiles.ntiles]
end
return true
end
return false
end
function Creator:processTouches (g)
if g.type.ended then
g:reset()
end
end
function string:split(pat)
pat = pat or '%s+'
local st, g = 1, self:gmatch("()("..pat..")")
local function getter(segs, seps, sep, cap1, ...)
st = sep and seps + #sep
return self:sub(segs, (seps or 0) - 1), cap1 or sep, ...
end
return function() if st then return getter(st, g()) end end
end
local pieces = {
{"l","e","a","D"},
{"A","f","g","b"},
{"c","B","h","i"},
{"k","d","C","j"}
}
local int = {"a","b","c","d"}
local function jigsaw(m)
local t,jig,mt = {},{}
for v in m:split(";") do
mt = {}
for u in v:split(",") do
table.insert(mt,u)
jig[u] = mt
end
table.insert(t,mt)
end
local it,opp = {},{}
for k,v in ipairs(t) do
it[v] = k
end
for k,v in ipairs(int) do
opp[jig[v]] = jig[string.upper(v)]
opp[jig[string.upper(v)]] = jig[v]
end
local e,me = {}
for k,v in ipairs(pieces) do
me = {}
for l,u in ipairs(v) do
table.insert(me,{it[jig[u]],it[opp[jig[u]]]})
end
table.insert(e,me)
end
return e
end
function initialiseTiles(t)
t = t or {}
local angle = t.angle or math.pi/5
local s = t.size or 100
local tileTypes = {}
local spotRadius = 20
local touchHandler = t.touchHandler
local phi = (math.sqrt(5) + 1)/2
for k,v in ipairs({
"kite",
"dart",
"thinRhombus",
"thickRhombus",
"hexagon",
"tripleHexagon",
"eqTriangle",
"isoTriangle",
"octagon",
"fourSquare",
"twoSquare",
"octSquare",
"11r10Rhombus",
"11r8Rhombus",
"11r6Rhombus",
"11r4Rhombus",
"11r2Rhombus",
}) do
tileTypes[v] = ProtoTile()
end
for k=1,4 do
tileTypes["jigSquare" .. k] = ProtoTile()
end
local kc = ( s*vec2(1,0):rotate(angle) +
s*vec2(1,0) +
s*vec2(1,0):rotate(-angle) )/4
local kd = ( s*vec2(1,0) +
s*vec2(1,0):rotate(angle) +
s*2*math.cos(angle)*vec2(1,0) +
s*vec2(1,0):rotate(-angle) )/4
tileTypes["kite"]:initialise(
{
name = "kite",
vertices = {
vec2(0,0),
s*vec2(1,0):rotate(angle),
s*vec2(1,0),
s*vec2(1,0):rotate(-angle)
},
corners = {
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipseMode(RADIUS)
ellipse(v,s/phi+strokeWidth()/2+1)
end,
function()
end,
function(v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,s*(1-1/phi)+strokeWidth()/2+1)
end,
function(v)
end,
},
edges = {{1,-1},{2,-2},{-2,2},{-1,1}},
dAngle = 36,
background = color(255, 255, 255, 111),
rscale = phi,
replacements = {
{tileTypes["kite"], -kc*phi + phi*s*vec2(1,0):rotate(-angle) + kc:rotate(3*angle), 108},
{tileTypes["kite"], -kc*phi + phi*s*vec2(1,0):rotate(angle) + kc:rotate(-3*angle), -108},
{tileTypes["dart"], -kc*phi + s*2*math.cos(angle)*vec2(1,0):rotate(-angle) - kd:rotate(-angle), 144}
}
}
)
tileTypes["dart"]:initialise(
{
name = "dart",
vertices = {
s*vec2(1,0),
s*vec2(1,0):rotate(angle),
s*2*math.cos(angle)*vec2(1,0),
s*vec2(1,0):rotate(-angle)
},
corners = {
function(v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,s*1/phi - s*(1-1/phi)+strokeWidth()/2+1)
end,
function()
end,
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,s*(1-1/phi)+strokeWidth()/2+1)
end,
function()
end,
},
edges = {{2,-2},{1,-1},{-1,1},{-2,2}},
dAngle = 36,
background = color(255, 255, 255, 255),
rscale = phi,
replacements = {
{tileTypes["kite"],
s*2*math.cos(angle)*vec2(1,0)*phi-kd*phi - kc, 180},
{tileTypes["dart"], -kd*phi + s*vec2(1,0):rotate(-angle)*phi + kd:rotate(6*angle) - s*2*math.cos(angle)*vec2(1,0):rotate(6*angle), 216}
}
}
)
tileTypes["thinRhombus"]:initialise(
{
name = "thinRhombus",
vertices = {
vec2(0,0),
s*vec2(1,0):rotate(angle),
s*2*math.cos(angle/2)*vec2(1,0):rotate(angle/2),
s*vec2(1,0),
},
corners = {
function()
end,
function(v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,1.5*spotRadius+strokeWidth()/2+1)
end,
function(v)
end,
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,1.5*spotRadius)
end,
},
edges = {{2,-2},{-2,2},{-1,1},{1,-1}},
dAngle = 36,
background = color(255, 255, 255, 255),
rscale = phi,
replacements = {
{tileTypes["thinRhombus"], phi*s*math.sin(angle/2)*vec2(0,1):rotate(angle/2) + s*math.sin(angle/2)*vec2(0,1):rotate(7*angle/2), 108 },
{tileTypes["thickRhombus"], phi*s*math.cos(angle/2)*vec2(1,0):rotate(angle/2) - s*math.cos(angle)*vec2(1,0):rotate(angle) , 36 },
}
}
)
tileTypes["thickRhombus"]:initialise(
{
name = "thickRhombus",
vertices = {
vec2(0,0),
s*vec2(1,0):rotate(angle),
s*2*math.cos(angle)*vec2(1,0),
s*vec2(1,0):rotate(-angle),
},
corners = {
function(v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,s-1.5*spotRadius+strokeWidth()/2+1)
end,
function()
end,
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,1.5*spotRadius)
end,
function()
end,
},
edges={{2,-2},{-1,1},{1,-1},{-2,2}},
dAngle = 36,
background = color(255, 255, 255, 255),
rscale = phi,
replacements = {
{tileTypes["thinRhombus"], phi*s*math.sin(angle)*vec2(0,1) + s*math.sin(angle/2)*vec2(0,1):rotate(7*angle/2), 108},
{tileTypes["thickRhombus"], phi*s*math.cos(angle)*vec2(1,0) - s*math.cos(angle)*vec2(1,0):rotate(-angle) , 144 },
{tileTypes["thickRhombus"], -phi*s*math.cos(angle)*vec2(1,0) + s*math.cos(angle)*vec2(1,0),180}
}
}
)
local hfn = function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,spotRadius)
end
local hangle = math.pi/3
local hs = s/2
local rangle = math.atan(math.sqrt(3)/2)
tileTypes["hexagon"]:initialise(
{
name = "hexagon",
vertices = {
vec2(0,0),
hs*vec2(1,0):rotate(hangle),
hs*vec2(1,0):rotate(hangle) + hs*vec2(1,0),
hs*vec2(2,0),
hs*vec2(1,0):rotate(-hangle) + hs*vec2(1,0),
hs*vec2(1,0):rotate(-hangle),
},
corners = {hfn,hfn,hfn,hfn,hfn,hfn,
},
edges = {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},
dAngle = 60,
checkEdges = {1},
rscale = math.sqrt(7),
rangle = math.deg(rangle),
replacements = {
{tileTypes["hexagon"], vec2(0,0), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0):rotate(hangle) - hs*vec2(1,0):rotate(2*hangle - rangle), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0):rotate(2*hangle) - hs*vec2(1,0):rotate(3*hangle - rangle), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0):rotate(3*hangle) - hs*vec2(1,0):rotate(4*hangle - rangle), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0):rotate(4*hangle) - hs*vec2(1,0):rotate(5*hangle - rangle), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0):rotate(5*hangle) - hs*vec2(1,0):rotate( - rangle), -math.deg(rangle)},
{tileTypes["hexagon"], math.sqrt(7)*hs*vec2(1,0) - hs*vec2(1,0):rotate(hangle - rangle), -math.deg(rangle)},
}
}
)
tileTypes["tripleHexagon"]:initialise(
{
name = "triple hexagon",
vertices = {
vec2(0,0),
hs*vec2(1,0):rotate(hangle),
hs*vec2(1,0):rotate(hangle) + hs*vec2(1,0),
hs*vec2(2,0),
hs*vec2(1,0):rotate(-hangle) + hs*vec2(1,0),
hs*vec2(1,0):rotate(-hangle),
},
corners = {hfn,nil,hfn,nil,hfn,nil,
},
edges = {{0,1},{1,0},{0,1},{1,0},{0,1},{1,0}},
dAngle = 60,
checkEdges = {1,2},
rscale = math.sqrt(3),
rangle = 30,
replacements = {
{tileTypes["tripleHexagon"], hs*vec2(0,1), 30},
{tileTypes["tripleHexagon"], hs*vec2(0,1):rotate(2*hangle), 150},
{tileTypes["tripleHexagon"], hs*vec2(0,1):rotate(4*hangle), 270},
}
}
)
tileTypes["eqTriangle"]:initialise(
{
name = "eqTriangle",
vertices = {
vec2(0,0),
s*vec2(1,0):rotate(hangle),
s*vec2(1,0)
},
corners = {hfn,hfn,hfn},
edges = {{0,0},{0,0},{0,0}},
dAngle = 60,
checkEdges = {1},
rscale = math.sqrt(3),
rangle = 30,
replacements = {
{tileTypes["eqTriangle"], s*vec2(0,1) - 1/math.sqrt(3)*s*vec2(0,1):rotate(hangle/2),30 },
{tileTypes["eqTriangle"], s*vec2(0,1):rotate(2*hangle) - 1/math.sqrt(3)*s*vec2(0,1):rotate(5*hangle/2),30 },
{tileTypes["eqTriangle"], s*vec2(0,1):rotate(-2*hangle) - 1/math.sqrt(3)*s*vec2(0,1):rotate(-3*hangle/2),30 },
}
}
)
local ifn = function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,1.5*spotRadius)
end
tileTypes["isoTriangle"]:initialise(
{
name = "isoTriangle",
vertices = {
vec2(0,0),
s*vec2(1,0):rotate(math.pi/5),
s*vec2(1,0)
},
corners = {ifn,ifn,ifn},
edges = {{0,0},{1,1},{0,0}},
dAngle = 36
}
)
hangle = math.pi/4
local ofn = function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,(2*hs/math.sqrt(23)+strokeWidth()/2+1),(2*hs/3+strokeWidth()+1))
end
local offn = function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,(2*hs/3+strokeWidth()+1))
end
tileTypes["octagon"]:initialise(
{
name = "octagon",
vertices = {
vec2(0,0),
hs*vec2(1,0):rotate(hangle),
hs*vec2(1,0):rotate(hangle) + hs*vec2(1,0),
hs*(math.sqrt(2)+1)*vec2(1,0),
hs*(math.sqrt(2)+1)*vec2(1,0)+hs*vec2(0,-1),
hs*vec2(1,0):rotate(-hangle) + hs*vec2(1,-1),
hs*vec2(1,0):rotate(-hangle) + hs*vec2(0,-1),
hs*vec2(0,-1),
},
corners = {
nil,
function (v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v - hs/(2*math.sqrt(2)+2)*vec2(1,0),hs/3+hs/(2*math.sqrt(2)+2)+strokeWidth()/2+1)
end,
function (v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v+hs*vec2(1,-1)/(2*math.sqrt(2)),hs/6+strokeWidth()/2+1)
stroke(c[2])
ellipse(v+hs*vec2(1,0)/(math.sqrt(2)),hs*(1/math.sqrt(2)+1/3)+strokeWidth()/2+1)
end,
nil,
nil,
function (v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,hs/3+strokeWidth()/2+1)
end,
function (v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,hs/3+strokeWidth()/2+1)
end,
function (v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,hs/3+strokeWidth()/2+1)
end,
},
edges = {{1,5},{2,12},{3,7},{4,9},{5,1},{6,10},{7,3},{8,11}},
dAngle = 45,
checkEdges = {1,2,3,4,5,6,7,8},
rscale = math.sqrt(2),
rangle = 45,
replacements = {
{tileTypes["octagon"],(math.sqrt(2)+1)*hs*vec2(0,1)/2,45},
{tileTypes["octagon"],(math.sqrt(2)+1)*hs*vec2(0,-1)/2,45},
}
}
)
local sangle = math.atan(1/2)
tileTypes["octSquare"]:initialise(
{
name = "octagon square",
vertices = {
vec2(0,0),
hs*vec2(0,1),
hs*vec2(1,1),
hs*vec2(1,0),
},
corners = {
function (v,c)
noFill()
stroke(c[1])
strokeWidth(5)
clip(0,0,3*hs/4-strokeWidth()/2,hs)
ellipse(v+hs*vec2(.5,0),hs/6+strokeWidth()/2+1,hs/2+strokeWidth()/2+1)
clip()
end,
function (v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,hs/3+strokeWidth()/2+1)
end,
function (v,c)
noFill()
stroke(c[1])
strokeWidth(5)
clip(3*hs/4-strokeWidth()/2,hs/2,3*hs/4,hs)
ellipse(v-hs*vec2(.5,0),hs/6+strokeWidth()/2+1,hs/2+strokeWidth()/2+1)
clip()
end,
function (v,c)
noFill()
stroke(c[2])
strokeWidth(5)
ellipse(v,hs/3+strokeWidth()/2+1)
end,
},
edges = {{9,4},{10,6},{11,8},{12,2}},
dAngle = 45,
checkEdges = {1,2,3,4},
rscale = math.sqrt(2),
rangle = 45,
replacements = {
{tileTypes["octSquare"],(1+math.sqrt(2))*hs*vec2(-1,0)/2,45},
{tileTypes["octSquare"],(1+math.sqrt(2))*hs*vec2(-1,-2)/2,45},
}
}
)
local sfn = function(v,c)
noFill()
stroke(c[1])
strokeWidth(10)
ellipse(v,2*spotRadius)
end
tileTypes["fourSquare"]:initialise(
{
name = "four square",
vertices = {
vec2(0,0),
s*vec2(0,1),
s*vec2(1,1),
s*vec2(1,0),
},
corners = {sfn,sfn,sfn,sfn},
edges = {{0,0},{0,0},{0,0},{0,0}},
dAngle = 45,
checkEdges = {1},
rscale = math.sqrt(5),
rangle = math.deg(sangle),
replacements = {
{tileTypes["fourSquare"],math.sqrt(5)*s*vec2(1,1)/2 - .5*s*vec2(1,1):rotate(sangle),math.deg(sangle)},
{tileTypes["fourSquare"],math.sqrt(5)*s*vec2(1,-1)/2 - .5*s*vec2(1,-1):rotate(sangle),math.deg(sangle)},
{tileTypes["fourSquare"],math.sqrt(5)*s*vec2(-1,1)/2 - .5*s*vec2(-1,1):rotate(sangle),math.deg(sangle)},
{tileTypes["fourSquare"],math.sqrt(5)*s*vec2(-1,-1)/2 - .5*s*vec2(-1,-1):rotate(sangle),math.deg(sangle)},
{tileTypes["fourSquare"],vec2(0,0),math.deg(sangle)}
}
}
)
tileTypes["twoSquare"]:initialise(
{
name = "two square",
vertices = {
vec2(0,0),
s*vec2(0,1),
s*vec2(1,1),
s*vec2(1,0),
},
corners = {sfn,nil,sfn,nil},
edges = {{0,1},{1,0},{0,1},{1,0}},
dAngle = 45,
checkEdges = {1,2},
rscale = math.sqrt(2),
rangle = 45,
replacements = {
{tileTypes["twoSquare"],math.sqrt(2)*s*vec2(1,0)/2,45},
{tileTypes["twoSquare"],math.sqrt(2)*s*vec2(-1,0)/2,45},
}
}
)
for k=1,4 do
tileTypes["jigSquare" .. k]:initialise(
{
name = "two square",
vertices = {
vec2(0,0),
s*vec2(0,1),
s*vec2(1,1),
s*vec2(1,0),
},
edges = {{0,1},{1,0},{0,1},{1,0}},
dAngle = 90,
checkEdges = {1,2,3,4}
}
)
end
local elang = math.pi/11
local name,vec
for k=2,10,2 do
name = string.format("11r%uRhombus",k)
vec = s*vec2(1,0):rotate((11-k)*elang)
tileTypes[name]:initialise(
{
name = name,
vertices = {
vec2(0,0),
vec,
vec + s*vec2(1,0),
s*vec2(1,0),
},
corners = {
function()
end,
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,s - 1.5*spotRadius + strokeWidth()/2+1)
end,
function(v)
end,
function(v,c)
noFill()
stroke(c[1])
strokeWidth(5)
ellipse(v,1.5*spotRadius + strokeWidth()/2 + 1)
end,
},
edges = {{1,-1},{-1,1},{-1,1},{1,-1}},
dAngle = 360/11,
background = color(255, 255, 255, 255),
}
)
end
local tileSets = {}
table.insert(tileSets,{
name = "Penrose Darts",
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
local x,dx = -75,-125
for l,v in ipairs({"kite", "dart"}) do
tiles:addCreator({position = vec2(x,-75),ptile = tileTypes[v]})
x = x + dx
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[v]
}))
end
end
end
})
table.insert(tileSets,{
name = "Penrose Rhombi",
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
local x,dx = -75,-100
for l,v in ipairs({"thinRhombus", "thickRhombus"}) do
tiles:addCreator({position = vec2(x,-100),ptile = tileTypes[v],angle = 90 + (l-2)*18})
x = x + dx
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[v]
}))
end
end
end
})
table.insert(tileSets,{
name = "Maloney Rhombi",
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
local x,dx = -75,-100
for l=5,1,-1 do
name = string.format("11r%uRhombus",2*l)
tiles:addCreator({position = vec2(x,-100),ptile = tileTypes[name],angle = 90,scale = .5})
x = x + dx
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[name]
}))
end
end
end
})
for k,v in ipairs({
{"7 Hexagons", "hexagon"},
{"3 Hexagons", "tripleHexagon"},
{"Equilateral Triangles", "eqTriangle"},
{"4 Squares", "fourSquare"},
{"2 Squares", "twoSquare"},
}) do
table.insert(tileSets,{
name = v[1],
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
tiles:addCreator({position = vec2(-75,-100),ptile = tileTypes[v[2]],angle = 0})
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[v[2]]
}))
end
end
})
end
for k,v in ipairs({
{"Isosceles Triangles", "isoTriangle"},
}) do
table.insert(tileSets,{
name = v[1],
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
local x,dx = -75,-100
local ob
for i=0,1 do
ob = tiles:addCreator({position = vec2(x,-100),ptile = tileTypes[v[2]],angle = i*180})
if i == 0 then
ob.ignore = true
end
x = x + dx
end
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[v[2]]
}))
end
end
})
end
table.insert(tileSets,{
name = "Octagons",
setup = function(tiles)
tiles:clearCreators()
local n = tiles.ntiles
local x,dx = -75,-100
for l,v in ipairs({"octagon", "octSquare"}) do
tiles:addCreator({position = vec2(x,-100),ptile = tileTypes[v],angle = 90 + (l-2)*18})
x = x + dx
if n == 0 then
tiles:addTile(Tile({
ptile = tileTypes[v],
}))
end
end
end
})
local jigs = {
"A,f,g;B,h,i;C,j,k;D,l,e;a;b;c;d",
"A;B,b,e,f,g,j,k,l;C,c;D,h,i;a;d",
"A;B,b,e,f,g,j,k,l;C;D,h,i;a;c;d",
"A;B,b,e,f,g,j,k,l;C;D,h;a;c,i;d",
"A;B,b,e,h,i,j,k,l;C,c;D;a;d,f,g",
"A,C,a,c,f,g,j,l;B,e,h,k;D,i;b;d",
"A,C,a,c,f,g,j,l;B,e,k;D,h,i;b;d",
"A,a,e,g,i,j,k,l;B,C;D,f,h;b,c;d",
"A,i,j,k;B,C,b,c,e,f,g,l;D;a;d,h",
"A,i,j;B,C,b,c,e,f,g,l;D;a;d,h,k",
"A,i,k;B,C,b,c,e,f,g,l;D,j;a;d,h"
}
local njigs = table.getn(jigs)
spotRadius = spotRadius/2
local jfns = {}
for k=1,4 do
table.insert(jfns,function()
pushMatrix()
translate(0,k*spotRadius)
ellipse(0,0,spotRadius)
popMatrix()
end)
end
table.insert(tileSets,{
name = "2x2 Jigsaw",
setup = function(tiles)
tiles:clearCreators()
tiles:clearScreen()
tiles.drawEdges = true
local jig = jigsaw(jigs[math.random(1,njigs)])
local p
local sh = KnuthShuffle(4,true)
for _,k in ipairs(sh) do
p = "jigSquare" .. k
tileTypes[p].edges = jig[k]
tileTypes[p].corners = {}
for l=1,4 do
table.insert(
tileTypes[p].corners,
function(v,c)
noFill()
pushMatrix()
translate(v)
rotate(-(l-1)*90)
stroke(c[jig[k][l][1]%2+1])
jfns[math.floor((jig[k][l][1]-1)/2)+1]()
translate(0,s)
rotate(180)
stroke(c[jig[k][l][2]%2+1])
jfns[math.floor((jig[k][l][2]-1)/2)+1]()
popMatrix()
end
)
end
tileTypes[p]:createImage()
tiles:addTile(Tile({
ptile = tileTypes["jigSquare" .. k],
angle = 90*math.random(0,3),
position = vec2(WIDTH,HEIGHT)/2 + 3*s*vec2(k%2-.5,math.floor(k/2-.5))
}))
end
end
})
return tileTypes,tileSets
end
-- Penrose Tiles
VERSION = 3.0
--[[
sprite()
--]]
cmodule "Penrose Tiles"
cmodule.path("Library Maths", "Library Base", "Library Graphics", "Library Utilities", "Library UI")
HEIGHT, WIDTH = 1024, 768
function setup()
saveProjectInfo("Author","Andrew Stacey")
saveProjectInfo("Project","Penrose Tiles")
saveProjectInfo("Description","A Penrose tile program.")
if AutoGist then
autoGist = AutoGist("Penrose Tiles","A Penrose tile program.",VERSION,false)
autoGist:backup(true)
end
displayMode(FULLSCREEN_NO_BUTTONS)
-- displayMode(FULLSCREEN)
cimport "VecExt"
cimport "Keyboard"
cimport "NumberSpinner"
cimport "PictureBrowser"
cimport "Colour"
touches = cimport "Touch"()
cimport "Menu"
ui = cimport "UI"(touches)
ui:systemmenu()
ui:setPictureList({
directory = "Documents",
camera = false
})
dbug = cimport "Debug" ({ui = ui})
local m = ui:addMenu({
title = "Tile Sets",
attach = true
})
tiles = Tiles(touches,ui)
local tileTypes,tileSets = initialiseTiles()
local set
for k,v in ipairs(tileSets) do
m:addItem({
title = v.name,
action = function()
v.setup(tiles)
return true
end
})
end
tileSets[1].setup(tiles)
tiles:setMenus(tileTypes)
orientationChanged = _orientationChanged
pframe = image(WIDTH,HEIGHT)
nframe = -1
imn = 0
actions = {
--[[
}
stuff = {
]]
function()
tileSets[1].setup(tiles)
end,
function()
tiles:removeTile(tiles.tiles[2])
tiles:redrawbg()
end,
function()
tiles:addForced(3)
end,
function()
tiles:redrawbg()
end,
function()
tiles.checkEdges = false
end,
function()
Tile.setTexture("Documents:Rose Pink",tiles.zoom)
Tile.granularity = .4
tiles:reTintTiles()
tiles:redrawbg()
end,
function()
tiles:replaceTiles()
end,
function()
tiles:replaceTiles()
end,
function()
tiles:replaceTiles()
end
}
end
function draw()
touches:draw()
local running
if tiles.processes[1] then
running = isRecording()
else
nframe = -1
if isRecording() and actions[1] then
table.remove(actions,1)()
end
end
if running then
nframe = nframe + 1
setContext(pframe)
end
if not running or nframe%10 == 0 then
background(40, 40, 50)
tiles:draw()
end
if running then
setContext()
resetMatrix()
spriteMode(CORNER)
sprite(pframe,0,0)
if nframe%10 == 0 then
imn = imn + 1
saveImage(string.format("Penrose:PenroseTile%05d",imn),pframe)
end
end
ui:draw()
dbug:draw()
touches:show()
AtEndOfDraw()
if isRecording() then
noFill()
strokeWidth(5)
stroke(255, 0, 0, 255)
rectMode(CORNER)
rect(0,0,WIDTH,HEIGHT)
end
end
function touched(t)
touches:addTouch(t)
end
function _orientationChanged(o)
if o == PORTRAIT or o == PORTRAIT_UPSIDE_DOWN then
HEIGHT, WIDTH = 1024, 768
else
HEIGHT, WIDTH = 768, 1024
end
ui:orientationChanged(o)
tiles:orientationChanged(o)
pframe = image(WIDTH,HEIGHT)
end
local __contexts = {}
local __numc = 0
local __setContext = setContext
function setContext(i)
if i then
__numc = __numc + 1
table.insert(__contexts,i)
__setContext(i)
else
__setContext() -- needed to reset the matrices
table.remove(__contexts)
__numc = __numc - 1
if __numc ~= 0 then
__setContext(__contexts[__numc])
end
end
end
local __record
function startRecording()
__record = true
end
function stopRecording()
__record = false
end
function isRecording()
return __record
end
local ptypes = 0
ProtoTile = class()
function ProtoTile:init(t)
if t then
self:initialise(t)
end
end
function ProtoTile:initialise(t)
t.vertices = t.vertices or {}
self.corners = t.corners or {}
local bgcolour = t.background or color(127,0,127,255)
self.edgeColour = t.edge or color(0, 0, 0, 255)
self.colours = t.colours or {
color(255, 221, 0, 255),
color(0, 255, 248, 255)
}
self.rscale = t.rscale or 1
self.rangle = t.rangle or 0
self.replacements = t.replacements or {}
self.edges = t.edges or {}
self.dAngle = t.dAngle or t.deltaAngle or 90
ptypes = ptypes + 1
self.name = t.name or string.format("Tile%02d",ptypes)
local o = vec2(0,0)
local n = 0
local ver = {}
for k,v in ipairs (t.vertices) do
o = o + v
n = n + 1
end
o = o / n
local r,lx,ly,ux,uy = 0,0,0,0,0
for k,v in ipairs (t.vertices) do
table.insert(ver,v - o)
r = math.max(r,(v-o):len())
lx = math.min(lx,(v-o).x)
ly = math.min(ly,(v-o).y)
ux = math.max(ux,(v-o).x)
uy = math.max(uy,(v-o).y)
end
self.radius = r
self.bb = {
vec2(lx,ly),
vec2(ux,ly),
vec2(ux,uy),
vec2(lx,ly),
vec2(lx,uy),
vec2(ux,uy)
}
self.points = ver
self.npoints = n
if not t.checkEdges then
self.cedges = {}
for k=1,n do
table.insert(self.cedges,k)
end
else
self.cedges = t.checkEdges
end
local img = image(2*r,2*r)
self.img = img
self:createImage()
self.mesh = mesh()
self.mesh.shader = shader("Documents:Tiling")
local vert = triangulate(ver)
self.mesh.vertices = vert
self.triangles = vert
self.mesh:setColors(bgcolour)
local tver = {}
for k,v in ipairs(vert) do
table.insert(tver,v/(2*r)+vec2(.5,.5))
end
self.mesh.texCoords = tver
self.mesh.texture = img
self.eimg = image(2*r,2*r)
end
function ProtoTile:draw()
self.mesh:setColors(tint())
self.mesh:draw()
end
function ProtoTile:checkTouch(t)
local tv = vec2(t.x,t.y)
local pts = {}
local n = self.npoints
for k=1,n do
pts[k] = self.points[k] - tv
end
pts[n+1] = pts[1]
local int = 0
for k=1,n do
if pts[k].y >= 0 and pts[k+1].y < 0 then
if (pts[k].x * pts[k+1].y - pts[k].y * pts[k+1].x)*(pts[k+1].y - pts[k].y) < 0 then
int = int + 1
end
elseif pts[k].y < 0 and pts[k+1].y >= 0 then
if (pts[k].x * pts[k+1].y - pts[k].y * pts[k+1].x)*(pts[k+1].y - pts[k].y) < 0 then
int = int + 1
end
end
end
if int%2 == 1 then
return true
end
return false
end
function ProtoTile:swapImages()
self.img,self.eimg = self.eimg,self.img
self.mesh.texture = self.img
end
function ProtoTile:createImage()
local r = self.radius
local ver = self.points
local n = self.npoints
local corners = self.corners
local edge = self.edgeColour
local c = self.colours
pushStyle()
setContext(self.img)
pushMatrix()
background(0, 0, 0, 0)
translate(r,r)
strokeWidth(3)
stroke(edge)
for i=1,n do
line(ver[i],ver[i%n+1])
end
for k,v in ipairs(ver) do
pushStyle()
if corners[k] then
corners[k](v,c)
end
popStyle()
end
popMatrix()
setContext()
popStyle()
end
-- Saved Tile Sets
savedTiles = {}
savedTiles["Spiral"] = function (t,tt)
t:addTile(Tile({
position = vec2(323.699434,619.214694),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(360.967233,543.701884),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(544.300566,453.221475),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(163.398867,512.000000),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(441.868933,602.480409),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(263.398867,472.814317),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(292.797734,650.916578),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(363.398867,472.814317),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(282.497168,414.035791),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(286.431634,543.701884),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(444.300566,531.592842),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(386.431634,441.112433),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(305.529934,382.333907),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(255.529934,638.807536),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(391.868933,638.807536),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(423.699434,429.003391),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(355.529934,346.006781),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(323.699434,555.810926),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(249.163834,594.996609),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(392.797734,333.897739),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(460.967233,441.112433),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(384.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(398.235033,594.996609),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(454.601133,333.897739),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(484.000000,472.814317),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(205.529934,602.480409),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(491.868933,346.006781),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(484.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(303.098301,453.221475),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(354.601133,650.916578),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(541.868933,382.333907),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(349.163834,389.817707),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(182.497168,570.778525),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(263.398867,512.000000),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(564.901699,414.035791),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(423.699434,365.599623),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(464.901699,570.778525),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(584.000000,472.814317),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(203.098301,531.592842),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(498.235033,389.817707),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
end
savedTiles["Spiral II"] = function (t,tt)
t:addTile(Tile({
position = vec2(261.896034,746.022230),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(355.529934,346.006781),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(224.628235,733.913188),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(323.699434,555.810926),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(174.628235,697.586061),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(249.163834,594.996609),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(392.797734,333.897739),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(124.628235,661.258934),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(460.967233,441.112433),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(384.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(101.595468,629.557050),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(398.235033,594.996609),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(454.601133,333.897739),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(163.398867,472.814317),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(484.000000,472.814317),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(205.529934,602.480409),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(82.497168,570.778525),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(491.868933,346.006781),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(63.398867,512.000000),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(484.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(479.136732,653.775135),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(303.098301,453.221475),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(429.136732,690.102262),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(354.601133,650.916578),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(354.601133,714.320346),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(541.868933,382.333907),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(292.797734,714.320346),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(349.163834,389.817707),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(218.262134,690.102262),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(182.497168,570.778525),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(263.398867,512.000000),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(168.262134,653.775135),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(564.901699,414.035791),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(122.196601,590.371367),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(423.699434,365.599623),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(103.098301,531.592842),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(464.901699,570.778525),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(203.098301,453.221474),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(584.000000,472.814317),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(222.196601,394.442949),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(203.098301,531.592842),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(182.497167,414.035791),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(498.235033,389.817707),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(201.595468,355.257266),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(584.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(224.628235,323.555382),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(323.699434,619.214694),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(268.262135,331.039182),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(544.300566,531.592842),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(318.262134,294.712055),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(360.967233,543.701884),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(529.136733,294.712055),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(544.300566,453.221475),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(564.901699,570.778526),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(163.398867,512.000000),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(579.136733,331.039181),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(441.868933,602.480409),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(392.797734,270.493971),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(525.202266,590.371367),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(454.601133,270.493971),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(263.398867,472.814317),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(292.797734,650.916578),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(625.202265,394.442949),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(545.803399,629.557051),
angle = 0.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(644.300566,453.221475),
angle = 144.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(363.398867,472.814317),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(664.901699,414.035792),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(522.770632,661.258935),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(274.628235,287.228255),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(282.497168,414.035791),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(324.628235,250.901129),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(286.431634,543.701884),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(361.896034,238.792087),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(472.770632,697.586061),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(423.699433,238.792087),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(444.300566,531.592842),
angle = 180.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(485.502833,238.792087),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(386.431634,441.112433),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(522.770632,250.901129),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(422.770632,733.913188),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(572.770632,287.228255),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(305.529934,382.333907),
angle = 216.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(622.770632,323.555382),
angle = 288.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(255.529934,638.807536),
angle = 108.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(645.803399,355.257266),
angle = 324.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(323.699434,746.022230),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(391.868933,638.807536),
angle = 36.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(684.000000,472.814317),
angle = 684.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(385.502833,746.022230),
angle = 72.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
t:addTile(Tile({
position = vec2(423.699434,429.003391),
angle = 252.000000,
scale = 1.000000,
ptile = tt["isoTriangle"]
}))
end
savedTiles["Anton s masterpiece"] = function (t,tt)
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles[""] = function (t,tt)
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(637.851580,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,714.560971),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,694.253490),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(651.375507,891.936730),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles[""] = function (t,tt)
t:addTile(Tile({
position = vec2(402.871907,-91.187040),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,540.369314),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,762.113797),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,350.158010),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,216.581314),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(818.753279,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,714.560971),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,599.147839),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,110.249963),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,225.663096),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,124.944594),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,753.032015),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,776.808428),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,-28.939582),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(359.470207,166.884570),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,130.557444),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499031,68.309987),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.293933,143.108157),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,599.147838),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,694.253490),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,753.032015),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(637.851580,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,714.560971),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,694.253490),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793932,661.395296),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,699.866340),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,599.147839),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,71.778919),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(697.400730,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,-28.939583),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,-52.715995),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,225.663096),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793933,163.415638),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,201.886683),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,124.944594),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,101.168181),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195632,-28.939582),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,222.194164),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1183.568292,320.346494),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990533,602.616771),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1234.129637,348.237566),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,818.748404),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,936.305455),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(564.744505,1171.921358),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(564.744505,1171.921358),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(218.492660,1261.310218),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(218.492660,1261.310218),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(218.492660,1261.310218),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(218.492660,1261.310218),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(218.492660,1261.310218),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,225.663095),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,201.886683),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,101.168181),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(697.400730,815.279473),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,877.526930),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,853.750517),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,450.876512),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,474.652925),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,48.002506),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,71.778919),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,-52.715995),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(164.244782,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,284.441621),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,857.219448),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,877.526929),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,915.997974),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(543.391956,1171.921358),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(270.191751,1254.639367),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,661.395295),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(780.126155,857.219449),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,915.997974),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,936.305455),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,350.158010),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,474.652925),
angle = 504.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(778.302429,471.183992),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,353.626942),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,533.431450),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,291.379485),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293933,622.924252),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195631,527.818600),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293932,699.866340),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,504.042187),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(833.077004,818.748404),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,545.982163),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,278.828771),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900730,-28.939583),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,-111.494521),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,622.924251),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,699.866339),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,723.642752),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,776.808428),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,853.750517),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,877.526929),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,815.279472),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,450.876511),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,373.934423),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,474.652924),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(990.105828,412.405467),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,350.158010),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,723.642753),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(758.077004,291.379485),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,225.663095),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,205.355614),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,465.571143),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(183.343083,412.405468),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,359.239791),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,110.249963),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,130.557444),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(306.519357,205.355614),
angle = 468.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,599.147838),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,533.431449),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(364.244782,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,877.526930),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478703,762.113796),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,661.395295),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,474.652924),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,163.415638),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478704,62.697137),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(837.851579,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,-91.187040),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,-111.494521),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,-52.715995),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617658,62.697137),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,-52.715995),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
end
savedTiles[""] = function (t,tt)
t:addTile(Tile({
position = vec2(823.527854,101.168181),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(697.400730,815.279473),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,877.526930),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,853.750517),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,450.876512),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,474.652925),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,48.002506),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,71.778919),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,-52.715995),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(164.244782,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,284.441621),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,857.219448),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,877.526929),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,915.997974),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,815.279473),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,71.778919),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,723.642753),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,560.676794),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,723.642753),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.929553,513.123969),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.929553,311.686966),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,71.778919),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,661.395295),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(780.126155,857.219449),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,915.997974),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,936.305455),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,350.158010),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,474.652925),
angle = 504.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(778.302429,471.183992),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,353.626942),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,533.431450),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,291.379485),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293933,622.924252),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195631,527.818600),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293932,699.866340),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,504.042187),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(833.077004,818.748404),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,545.982163),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,278.828771),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900730,-28.939583),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,-111.494521),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,622.924251),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,699.866339),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,723.642752),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,776.808428),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,853.750517),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195632,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,815.279472),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,450.876511),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,373.934423),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,474.652924),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(990.105828,412.405467),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,350.158010),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,723.642753),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(758.077004,291.379485),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,225.663095),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,205.355614),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,465.571143),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(183.343083,412.405468),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,359.239791),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,110.249963),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,130.557444),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(306.519357,205.355614),
angle = 468.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,599.147838),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,533.431449),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(364.244782,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,877.526930),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478703,762.113796),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,661.395295),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,474.652924),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,163.415638),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478704,62.697137),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(837.851579,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,-91.187040),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,-111.494521),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,-52.715995),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617658,62.697137),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,-52.715995),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871907,-91.187040),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,540.369314),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,762.113797),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,350.158010),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,216.581314),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(818.753279,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,714.560971),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,599.147839),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,110.249963),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,225.663096),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,124.944594),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,753.032015),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,776.808428),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,-28.939582),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(359.470207,166.884570),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,130.557444),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499031,68.309987),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.293933,143.108157),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,599.147838),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,694.253490),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,753.032015),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(637.851580,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,714.560971),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,694.253490),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(935.331253,569.758575),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793932,661.395296),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,699.866340),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,599.147839),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,71.778919),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(697.400730,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,-28.939583),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,-52.715995),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,225.663096),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793933,163.415638),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,201.886683),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(935.331253,255.052358),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,124.944594),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,101.168181),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195632,-28.939582),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,222.194164),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,143.108157),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990533,602.616771),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900730,48.002506),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,877.526929),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,818.748404),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,936.305455),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(125.617658,264.134140),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(57.215959,284.441621),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,320.768748),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,874.057998),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,756.500947),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,166.884570),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195631,794.971992),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215959,540.369314),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(759.900730,794.971992),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,699.866340),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195632,296.992334),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,-49.247064),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,225.663095),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,201.886683),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles[""] = function (t,tt)
t:addTile(Tile({
position = vec2(823.527854,101.168181),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(697.400730,815.279473),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,877.526930),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,853.750517),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,450.876512),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,474.652925),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,48.002506),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,71.778919),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,-52.715995),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(164.244782,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,284.441621),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,857.219448),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,877.526929),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,915.997974),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,815.279473),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,71.778919),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,723.642753),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,560.676794),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,723.642753),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.929553,513.123969),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.929553,311.686966),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,71.778919),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,661.395295),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(780.126155,857.219449),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,915.997974),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,936.305455),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,350.158010),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,474.652925),
angle = 504.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(778.302429,471.183992),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,353.626942),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,533.431450),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,291.379485),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293933,622.924252),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195631,527.818600),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293932,699.866340),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,504.042187),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(833.077004,818.748404),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,545.982163),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,278.828771),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900730,-28.939583),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,-111.494521),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,622.924251),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,699.866339),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,723.642752),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,776.808428),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,853.750517),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195632,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,815.279472),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,450.876511),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,373.934423),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,474.652924),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(990.105828,412.405467),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,350.158010),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,723.642753),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(758.077004,291.379485),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,225.663095),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,205.355614),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,465.571143),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(183.343083,412.405468),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,359.239791),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,110.249963),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,130.557444),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(306.519357,205.355614),
angle = 468.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,599.147838),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,533.431449),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(364.244782,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,877.526930),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478703,762.113796),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,661.395295),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,474.652924),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,163.415638),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478704,62.697137),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(837.851579,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,-91.187040),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724456,-111.494521),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,-52.715995),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617658,62.697137),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,-52.715995),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871907,-91.187040),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,540.369314),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,762.113797),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,350.158010),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,216.581314),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(818.753279,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,714.560971),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,599.147839),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224456,110.249963),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,225.663096),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,124.944594),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,753.032015),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,776.808428),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,-28.939582),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(359.470207,166.884570),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,130.557444),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499031,68.309987),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.293933,143.108157),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,599.147838),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,694.253490),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,753.032015),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(637.851580,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,714.560971),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,694.253490),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(935.331253,569.758575),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793932,661.395296),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,622.924252),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,699.866340),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,599.147839),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,71.778919),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(697.400730,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,-28.939583),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,-52.715995),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,225.663096),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793933,163.415638),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,201.886683),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(935.331253,255.052358),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,124.944594),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,101.168181),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195632,-28.939582),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,222.194164),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,143.108157),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990533,602.616771),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900730,48.002506),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921057,877.526929),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,818.748404),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,936.305455),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(125.617658,264.134140),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(57.215959,284.441621),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,320.768748),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,874.057998),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,756.500947),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,166.884570),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195631,794.971992),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215959,540.369314),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(759.900730,794.971992),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,699.866340),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195632,296.992334),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,-49.247064),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,225.663095),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,201.886683),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles["Infinite sun pattern"] = function (t,tt)
t:addTile(Tile({
position = vec2(954.293155,268.951834),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(881.116880,61.901982),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(954.293155,-38.816520),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(700.215181,-80.756496),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(881.116880,168.233333),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(762.715181,331.199291),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(470.010083,-5.958325),
angle = 576.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(470.010083,-71.674714),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(407.510083,14.349156),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.862632,14.349156),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(661.588057,-133.922171),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(656.813482,52.820200),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.813482,177.315114),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(583.637207,76.596613),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(828.166031,206.704377),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(828.166031,331.199291),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(901.342305,230.480790),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(901.342305,307.422878),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(535.460932,301.810029),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(490.235508,364.057486),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(722.264331,485.083468),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(535.460932,426.304943),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(608.637207,402.528530),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(608.637207,325.586441),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(583.637207,153.538701),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(588.411782,464.775987),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(349.784658,-133.922171),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(311.157534,-80.756496),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(470.010083,-196.169628),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(702.038906,115.067657),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(722.264331,177.315114),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(828.166031,23.430937),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(782.940606,-38.816520),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(901.342305,-0.345475),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(994.744005,19.962006),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(702.038906,-192.700696),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(764.538906,-172.393215),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(828.166031,-101.063977),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(901.342305,-77.287564),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(535.460932,-71.674714),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(608.637207,-95.451127),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(490.235508,-133.922171),
angle = 900.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(782.940606,268.951834),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(762.715181,-101.063977),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(722.264331,-254.948154),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.862632,215.786159),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(530.686357,115.067657),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(722.264331,52.820200),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(490.235508,173.846182),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(535.460932,236.093640),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(702.038906,422.836011),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.813482,485.083468),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(837.715181,426.304943),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(402.735508,-172.393215),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(764.538906,402.528530),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(402.735508,-95.451127),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(364.108383,-42.285452),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(470.010083,236.093640),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(407.510083,215.786159),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(470.010083,301.810029),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(290.932109,-18.509039),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(289.108383,52.820200),
angle = 576.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(311.157534,310.891810),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(349.784658,364.057486),
angle = 540.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(881.116880,369.670335),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(784.764331,464.775987),
angle = 468.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(535.460932,-196.169628),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(789.538906,76.596613),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(647.264331,-42.285452),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(720.440606,-18.509039),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(949.518580,147.925852),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(949.518580,82.209463),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(994.744005,210.173309),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(364.108383,272.420766),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(608.637207,-172.393215),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(427.735508,153.538701),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(354.559233,177.315114),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(402.735508,325.586441),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.764331,-234.640673),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(881.116880,-139.535021),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(588.411782,-234.640673),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(700.215181,310.891810),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(661.588057,364.057486),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(837.715181,-196.169628),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.813482,-254.948154),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(402.735508,402.528530),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(290.932109,248.644353),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(535.460932,-5.958325),
angle = 612.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(490.235508,56.289132),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(309.333808,115.067657),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(354.559233,52.820200),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(470.010083,426.304943),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(289.108383,177.315114),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(427.735508,76.596613),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(720.440606,248.644353),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(647.264331,272.420766),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(789.538906,153.538701),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(842.489756,115.067657),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1014.969430,82.209463),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1014.969430,147.925852),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
end
savedTiles[""] = function (t,tt)
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992334),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(371.631815,818.115478),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(561.365384,793.508394),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles["Anton,s Disc"] = function (t,tt)
t:addTile(Tile({
position = vec2(891.929553,513.123968),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,350.158010),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.929553,311.686965),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,163.415638),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282103,216.581314),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626154,71.778919),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(837.851579,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478704,62.697137),
angle = 648.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,853.750517),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,877.526929),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,776.808428),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695631,815.279472),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,753.032015),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724456,130.557444),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,110.249963),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,9.531462),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,110.249963),
angle = 432.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(823.527854,533.431449),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(935.331253,569.758576),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,471.183992),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,450.876511),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(990.105828,412.405467),
angle = 720.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1008.507527,278.828771),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,291.379484),
angle = 612.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,350.158010),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(944.880403,474.652924),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,353.626942),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(935.331253,255.052358),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,143.108157),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626154,166.884570),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900729,-28.939582),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.900729,48.002506),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(695.577004,311.686966),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(578.999030,545.982163),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(656.949880,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,196.273833),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(637.851579,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,714.560971),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,694.253490),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(516.499030,566.289644),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,569.758576),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,450.876511),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,628.537101),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,569.758576),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.675305,454.345443),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(597.400730,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,469.040074),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,379.547273),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,445.263662),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,507.511119),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(758.077004,225.663095),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626154,877.526930),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(780.126154,857.219448),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,723.642753),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,599.147838),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(876.478704,762.113797),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,205.355614),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,291.379485),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,359.239791),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(183.343083,412.405467),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970207,465.571143),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(833.077004,818.748404),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(759.900730,794.971991),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,622.924251),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(690.802429,699.866340),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,776.808428),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,753.032015),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999030,853.750517),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(697.400730,815.279472),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.724455,415.874399),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(577.175305,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048181,507.511119),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(534.900730,392.097986),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,608.229620),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,628.537101),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(695.577004,513.123968),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,608.229620),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(423.097331,545.982163),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,474.652924),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,296.992334),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293932,622.924252),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(217.195631,48.002506),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,101.168181),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,201.886683),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704129,124.944594),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,101.168181),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,450.876512),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(130.392233,373.934422),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215958,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215959,474.652924),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,196.273833),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.097331,220.050246),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,320.768747),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,258.521290),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(715.802429,373.934423),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,599.147838),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,723.642753),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.704128,699.866340),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,68.309987),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273606,130.557444),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,48.002506),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195632,296.992334),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,320.768748),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695631,9.531462),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273605,936.305455),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215959,284.441620),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(11.990534,222.194163),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(423.097331,-28.939583),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,71.778919),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.921056,-52.715996),
angle = 612.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(359.470207,166.884570),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.293932,143.108157),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,756.500947),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273605,694.253490),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,874.057998),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(244.019357,225.663096),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,284.441621),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,350.158010),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(476.048180,815.279472),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,714.560971),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,661.395296),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617657,762.113797),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,-52.715996),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,-91.187040),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(536.724455,-111.494521),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(599.224455,915.997974),
angle = 468.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(697.400729,9.531462),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,-52.715995),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793932,163.415638),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(599.224455,-91.187040),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(717.626155,-52.715996),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(52.441383,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617658,264.134140),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,71.778919),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(402.871906,915.997974),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470206,877.526929),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.617658,560.676794),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.970206,857.219448),
angle = 72.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(105.392233,201.886683),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568508,225.663096),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(306.519357,205.355615),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,723.642753),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(244.019357,599.147839),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(364.244781,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234891,474.652924),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-8.234892,540.369313),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(217.195631,-28.939583),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,936.305455),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(896.704128,622.924251),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(871.704128,373.934422),
angle = 576.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(642.626155,350.158010),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,296.992335),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.999030,220.050246),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,877.526930),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(778.302429,163.415638),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(823.527854,225.663095),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(304.695632,317.299815),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(536.724455,320.768747),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(418.322756,359.239792),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,379.547273),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(345.146481,258.521290),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(284.470207,445.263662),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(949.654978,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(988.282102,608.229620),
angle = 792.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(758.077004,533.431450),
angle = 504.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(818.753279,412.405467),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1010.331253,474.652924),
angle = 756.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(242.195631,794.971991),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,818.748404),
angle = 108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,622.924251),
angle = 576.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392232,699.866340),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(164.244782,9.531462),
angle = 540.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(178.568507,723.642753),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(223.793932,661.395296),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(178.568507,599.147838),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(125.617658,62.697137),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(11.990533,602.616770),
angle = 180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(57.215959,540.369313),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(169.019357,504.042187),
angle = 612.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(242.195632,527.818600),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(311.293933,699.866340),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(471.273605,-111.494521),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(516.499030,-49.247064),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(105.392233,124.944595),
angle = 576.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(652.175305,71.778919),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,48.002506),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(578.999031,-28.939583),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles["thomas art"] = function (t,tt)
t:addTile(Tile({
position = vec2(694.939294,1699.519877),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(760.390144,1699.519877),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(461.086745,1484.713257),
angle = 972.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(333.135895,1464.405776),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(465.861320,1374.912974),
angle = 1116.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(822.890144,1719.827358),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(577.664719,1451.855062),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(465.861320,1297.970885),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(760.390144,1633.803488),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(378.361320,1526.653233),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(504.488444,1428.078649),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.783346,981.939654),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(440.861320,1546.960714),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(349.283346,1067.963524),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(398.586745,1398.689387),
angle = 36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(333.135895,1274.194473),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(559.263019,1585.431758),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(461.086745,1803.707310),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(333.135895,1588.900690),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(259.959620,1488.182189),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(259.959620,1565.124277),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(354.057921,958.163241),
angle = 36.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(827.664719,1610.027075),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(866.291843,1663.192750),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(392.685045,1011.328916),
angle = 252.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(919.242693,1624.721706),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(981.742693,1604.414225),
angle = 216.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(919.242693,1518.390355),
angle = 1152.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(880.615568,1571.556031),
angle = 360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(981.742693,1538.697836),
angle = 144.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(122.124485,2246.197433),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(122.124485,2246.197433),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(221.332496,1237.867346),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(559.263019,1702.988809),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(514.037594,1765.236266),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(286.783346,1047.656043),
angle = 684.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(148.156222,1261.643759),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(518.812170,1336.441930),
angle = 720.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(514.037594,1523.184301),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(518.812170,1644.210283),
angle = 720.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(333.135895,1398.689387),
angle = 72.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(114.708650,2360.613179),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(333.135895,1654.617079),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-62.211994,2061.860954),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-62.211994,2061.860954),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-62.211994,2061.860954),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-62.211994,2061.860954),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-62.211994,2061.860954),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(398.586745,1464.405776),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(398.586745,1274.194473),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(557.439294,1389.607605),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(95.205372,1300.114803),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(579.488444,1523.184301),
angle = 324.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(197.459620,1467.874708),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(266.557921,1109.903500),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(264.734196,1294.501954),
angle = 648.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(378.361320,1336.441930),
angle = 360.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(621.763019,1723.296290),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(221.332496,1172.150957),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
savedTiles["Large Tiling"] = function (t,tt)
t:addTile(Tile({
position = vec2(384.000000,512.000000),
angle = 0.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,453.221475),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,473.528956),
angle = 216.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,390.974018),
angle = -36.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,390.974018),
angle = 288.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,411.281499),
angle = 252.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,449.752543),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(331.049150,550.471044),
angle = 396.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(331.049150,473.528956),
angle = 324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,411.281499),
angle = 288.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(257.872876,449.752543),
angle = 612.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(212.647451,512.000000),
angle = 900.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(257.872876,574.247457),
angle = 468.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,325.257629),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,325.257629),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,263.010172),
angle = 720.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,612.718501),
angle = 432.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,570.778525),
angle = 0.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,550.471044),
angle = 144.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,612.718501),
angle = 108.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(444.676275,633.025982),
angle = 396.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,574.247457),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,633.025982),
angle = 792.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,698.742371),
angle = 1008.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,698.742371),
angle = 1044.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,760.989828),
angle = 1440.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(605.352549,512.000000),
angle = 720.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(545.803399,665.884177),
angle = 180.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(507.176275,719.049852),
angle = 1332.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,757.520897),
angle = 1728.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,781.297310),
angle = 1656.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(598.754249,627.413133),
angle = 576.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(598.754249,704.355221),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(667.852549,532.307481),
angle = 936.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(625.577974,449.752543),
angle = 684.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(688.077974,470.060024),
angle = 972.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(741.028824,508.531068),
angle = 1368.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(623.754249,378.423304),
angle = 684.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(686.254249,358.115823),
angle = 900.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.528824,316.175847),
angle = 648.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(666.028824,295.868366),
angle = 936.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,295.868366),
angle = 1332.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(550.577974,354.646891),
angle = 972.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(511.950850,301.481216),
angle = 1116.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(564.901699,263.010172),
angle = 1080.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(511.950850,224.539127),
angle = 1404.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,200.762714),
angle = 1764.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,200.762714),
angle = 2088.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,603.636720),
angle = 1296.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,603.636720),
angle = 1692.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(686.254249,665.884177),
angle = 1620.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.430523,565.165676),
angle = 1728.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(804.655948,627.413133),
angle = 2124.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,728.131634),
angle = 1584.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,728.131634),
angle = 1908.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(804.655948,704.355221),
angle = 2196.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(306.049150,224.539127),
angle = 2376.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(550.577974,171.373452),
angle = 1548.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.528824,209.844496),
angle = 1512.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(623.754249,147.597039),
angle = 1836.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,230.151977),
angle = 1224.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(686.254249,167.904520),
angle = 1620.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(731.479673,230.151977),
angle = 1548.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(726.705098,416.894348),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(779.655948,378.423304),
angle = 1656.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(779.655948,455.365393),
angle = 1584.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(799.881373,316.175847),
angle = 1692.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(852.832223,354.646891),
angle = 2088.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(306.049150,301.481216),
angle = 504.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(267.422026,354.646891),
angle = 648.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(214.471176,316.175847),
angle = 612.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(253.098301,263.010172),
angle = 900.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(194.245751,378.423304),
angle = 936.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,449.752543),
angle = 1296.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(131.745751,358.115823),
angle = 1080.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(151.971176,295.868366),
angle = 1044.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(86.520327,295.868366),
angle = 1368.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(898.057647,416.894348),
angle = 2160.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,479.141805),
angle = 1872.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,544.858195),
angle = 2088.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,479.141805),
angle = 1836.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(918.283072,544.858195),
angle = 2124.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(898.057647,607.105652),
angle = 2520.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(857.606798,665.884177),
angle = 2880.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(960.557647,627.413133),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(980.783072,565.165676),
angle = 2772.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1033.733922,603.636720),
angle = 3168.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,574.247457),
angle = 864.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.147451,473.528956),
angle = 1296.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(86.520327,420.363280),
angle = 1512.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(72.196601,512.000000),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(33.569477,458.834324),
angle = 1548.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(13.344052,396.586867),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(125.147451,550.471044),
angle = 1584.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(267.422026,669.353109),
angle = 432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(306.049150,722.518784),
angle = 576.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(253.098301,760.989828),
angle = 540.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(214.471176,707.824153),
angle = 828.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(306.049150,799.460873),
angle = 864.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(194.245751,645.576696),
angle = 1224.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(131.745751,665.884177),
angle = 1440.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(151.971176,728.131634),
angle = 1476.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(86.520327,728.131634),
angle = 1872.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(86.520327,603.636720),
angle = 1728.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(33.569477,565.165676),
angle = 1692.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(13.344052,627.413133),
angle = 2016.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,823.237286),
angle = 1152.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(417.852549,876.402961),
angle = 1296.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(364.901699,914.874005),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(326.274575,861.708330),
angle = 1548.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(417.852549,953.345050),
angle = 1584.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(212.647451,819.768354),
angle = 540.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(150.147451,799.460873),
angle = 756.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,882.015811),
angle = 504.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(129.922026,861.708330),
angle = 792.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(76.971176,823.237286),
angle = 1188.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(33.569477,766.602678),
angle = 1548.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(13.344052,704.355221),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(257.872876,882.015811),
angle = 828.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(257.872876,947.732200),
angle = 972.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,947.732200),
angle = 936.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(212.647451,1009.979657),
angle = 1260.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(13.344052,319.644779),
angle = 2016.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(326.274575,968.039681),
angle = 1332.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,1006.510725),
angle = 1728.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(306.049150,1030.287138),
angle = 1656.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(253.098301,1068.758182),
angle = 1620.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(306.049150,1107.229226),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(38.344052,876.402961),
angle = 1404.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(91.294902,914.874005),
angle = 1440.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(38.344052,953.345050),
angle = 1836.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(485.127124,852.626548),
angle = 1656.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(550.577974,852.626548),
angle = 2052.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(505.352549,914.874005),
angle = 1980.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.528824,814.155504),
angle = 2088.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(623.754249,876.402961),
angle = 2484.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(485.127124,977.121462),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(550.577974,977.121462),
angle = 2268.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(623.754249,953.345050),
angle = 2556.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,793.848023),
angle = 2376.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,793.848023),
angle = 2772.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(686.254249,856.095480),
angle = 2700.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(129.922026,968.039681),
angle = 1728.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(150.147451,1030.287138),
angle = 2124.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(76.971176,1006.510725),
angle = 2052.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,1131.005639),
angle = 2232.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(424.450850,1068.758182),
angle = 1800.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,1048.450701),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,1110.698158),
angle = 1908.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(444.676275,1131.005639),
angle = 2196.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,1072.227114),
angle = 2232.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(603.528824,1015.592507),
angle = 2592.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(598.754249,1125.392790),
angle = 2376.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(545.803399,1163.863834),
angle = 2340.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(598.754249,1202.334878),
angle = 2664.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(686.254249,973.652531),
angle = 2700.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,1035.899988),
angle = 2664.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,1035.899988),
angle = 2988.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(843.283072,757.520897),
angle = 2412.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.233922,719.049852),
angle = 2448.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(916.459347,781.297310),
angle = 2844.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(958.733922,698.742371),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1024.184772,698.742371),
angle = 3132.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(978.959347,760.989828),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1077.135621,660.271327),
angle = 3168.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1097.361046,722.518784),
angle = 3564.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(799.881373,814.155504),
angle = 2772.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(852.832223,852.626548),
angle = 3168.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(779.655948,876.402961),
angle = 3096.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,852.626548),
angle = 3204.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(898.057647,914.874005),
angle = 3600.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(726.705098,914.874005),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(779.655948,953.345050),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(799.881373,1015.592507),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(852.832223,977.121462),
angle = 3672.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(731.479673,1101.616377),
angle = 3132.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,1101.616377),
angle = 3096.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(686.254249,1163.863834),
angle = 3420.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,1226.111291),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,1226.111291),
angle = 3708.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(560.127124,1255.500554),
angle = 2808.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,1217.029509),
angle = 2772.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(486.950850,1279.276966),
angle = 3096.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,1196.722028),
angle = 2484.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,1258.969485),
angle = 2880.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,1196.722028),
angle = 2808.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(804.655948,1202.334878),
angle = 3996.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(804.655948,1125.392790),
angle = 3204.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(843.283072,1072.227114),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(896.233922,1110.698158),
angle = 3312.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(857.606798,1163.863834),
angle = 3600.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(916.459347,1048.450701),
angle = 3636.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,977.121462),
angle = 3996.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(985.557647,876.402961),
angle = 3204.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1024.184772,823.237286),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1077.135621,861.708330),
angle = 3312.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1038.508497,914.874005),
angle = 3600.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1097.361046,799.460873),
angle = 3636.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(985.557647,953.345050),
angle = 3996.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1024.184772,1006.510725),
angle = 4212.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1077.135621,968.039681),
angle = 4248.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1097.361046,1030.287138),
angle = 4644.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(267.422026,1160.394902),
angle = 2088.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(214.471176,1121.923858),
angle = 2052.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(194.245751,1184.171315),
angle = 2376.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1072.361046,550.471044),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1019.410197,512.000000),
angle = 3420.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1072.361046,473.528956),
angle = 3816.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(980.783072,458.834324),
angle = 3708.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(960.557647,396.586867),
angle = 4104.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1033.733922,420.363280),
angle = 4032.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(151.971176,1101.616377),
angle = 2124.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(131.745751,1163.863834),
angle = 2520.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(86.520327,1101.616377),
angle = 2448.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(33.569477,1063.145332),
angle = 2412.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(13.344052,1125.392790),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,1217.029509),
angle = 2448.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(331.049150,1279.276966),
angle = 2844.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(257.872876,1255.500554),
angle = 2772.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(384.000000,1317.748011),
angle = 2880.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(331.049150,1356.219055),
angle = 3276.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,1255.500554),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(212.647451,1317.748011),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(978.959347,1068.758182),
angle = 4500.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(958.733922,1131.005639),
angle = 4464.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1024.184772,1131.005639),
angle = 4788.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1097.361046,1107.229226),
angle = 5076.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(257.872876,1379.995468),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(13.344052,1202.334878),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(86.520327,1226.111291),
angle = 2592.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(125.147451,1279.276966),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(72.196601,1317.748011),
angle = 2700.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(33.569477,1264.582335),
angle = 2988.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(125.147451,1356.219055),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,1379.995468),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.459347,301.481216),
angle = 2304.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(838.508497,263.010172),
angle = 2340.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.459347,224.539127),
angle = 2736.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(799.881373,209.844496),
angle = 2628.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(779.655948,147.597039),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,171.373452),
angle = 2952.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(726.705098,109.125995),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(779.655948,70.654950),
angle = 3456.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(958.733922,325.257629),
angle = 2664.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(978.959347,263.010172),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1024.184772,325.257629),
angle = 2988.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(958.733922,200.762714),
angle = 3096.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1024.184772,200.762714),
angle = 3492.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1077.135621,363.728673),
angle = 2952.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1097.361046,301.481216),
angle = 3276.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(86.520327,1409.384730),
angle = 3168.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(33.569477,1370.913686),
angle = 3132.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(13.344052,1433.161143),
angle = 3456.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1097.361046,224.539127),
angle = 3564.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,46.878538),
angle = 3528.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(898.057647,109.125995),
angle = 3240.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(960.557647,129.433476),
angle = 3456.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,46.878538),
angle = 3204.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(980.783072,67.186019),
angle = 3492.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1033.733922,105.657063),
angle = 3888.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1077.135621,162.291670),
angle = 4248.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1072.361046,52.491387),
angle = 4104.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1019.410197,14.020343),
angle = 4140.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1072.361046,-24.450701),
angle = 4536.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,141.984189),
angle = 4536.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1139.635621,76.267800),
angle = 4464.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1159.861046,14.020343),
angle = 4860.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1205.086471,76.267800),
angle = 4788.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,-48.227114),
angle = 4896.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,-48.227114),
angle = 5292.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1278.262746,-24.450701),
angle = 5364.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1278.262746,52.491387),
angle = 5076.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1205.086471,141.984189),
angle = 4932.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,204.231646),
angle = 4860.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1033.733922,-77.616377),
angle = 4752.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(980.783072,-39.145332),
angle = 4788.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(960.557647,-101.392790),
angle = 5184.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,-18.837851),
angle = 5076.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(852.832223,-18.837851),
angle = 5472.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(898.057647,-81.085309),
angle = 5400.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1316.889870,105.657063),
angle = 5292.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1331.213595,14.020343),
angle = 5040.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1369.840720,67.186019),
angle = 5328.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1390.066145,129.433476),
angle = 5724.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,321.788697),
angle = 3420.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,384.036154),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,384.036154),
angle = 3708.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,449.752543),
angle = 3456.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,449.752543),
angle = 3852.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,512.000000),
angle = 3780.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,574.247457),
angle = 3744.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,574.247457),
angle = 4068.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1200.311896,263.010172),
angle = 3780.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1253.262746,224.539127),
angle = 4176.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1253.262746,301.481216),
angle = 4104.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,162.291670),
angle = 4212.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,200.762714),
angle = 4608.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1391.889870,200.762714),
angle = 4644.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1371.664445,263.010172),
angle = 5040.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,363.728673),
angle = 4068.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,325.257629),
angle = 4392.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1452.566145,109.125995),
angle = 5940.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,46.878538),
angle = 5976.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1497.791570,46.878538),
angle = 6372.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(741.028824,17.489275),
angle = 3672.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(688.077974,55.960319),
angle = 3708.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(667.852549,-6.287138),
angle = 4104.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(625.577974,76.267800),
angle = 3996.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,76.267800),
angle = 4392.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(605.352549,14.020343),
angle = 4320.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,114.738844),
angle = 4428.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(486.950850,52.491387),
angle = 4824.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.430523,-39.145332),
angle = 4032.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,-77.616377),
angle = 4428.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(804.655948,-101.392790),
angle = 4356.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,-77.616377),
angle = 4464.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(686.254249,-139.863834),
angle = 4860.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(857.606798,-139.863834),
angle = 4320.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(804.655948,-178.334878),
angle = 4644.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1278.262746,550.471044),
angle = 4356.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,639.963846),
angle = 3816.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,639.963846),
angle = 4212.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,702.211303),
angle = 4140.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1278.262746,473.528956),
angle = 3924.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1316.889870,420.363280),
angle = 4068.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1369.840720,458.834324),
angle = 4032.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1331.213595,512.000000),
angle = 4320.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1390.066145,396.586867),
angle = 4356.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1391.889870,325.257629),
angle = 4716.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1459.164445,301.481216),
angle = 4716.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1497.791570,354.646891),
angle = 4932.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1512.115295,263.010172),
angle = 4680.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1550.742419,316.175847),
angle = 4968.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1570.967844,378.423304),
angle = 5364.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1459.164445,224.539127),
angle = 5004.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1497.791570,171.373452),
angle = 5148.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1550.742419,209.844496),
angle = 5112.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1570.967844,147.597039),
angle = 5436.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1452.566145,416.894348),
angle = 4500.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,479.141805),
angle = 4464.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1497.791570,479.141805),
angle = 4788.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1316.889870,603.636720),
angle = 4572.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1369.840720,565.165676),
angle = 4608.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1390.066145,627.413133),
angle = 5004.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(731.479673,-202.111291),
angle = 4932.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,-24.450701),
angle = 4896.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,135.046325),
angle = 4716.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,135.046325),
angle = 5112.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(424.450850,72.798868),
angle = 5040.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(560.127124,-48.227114),
angle = 4608.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(598.754249,-101.392790),
angle = 4824.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,-86.698158),
angle = 4572.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(545.803399,-139.863834),
angle = 4860.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(598.754249,-178.334878),
angle = 5256.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,-202.111291),
angle = 5616.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1159.861046,819.768354),
angle = 3780.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,882.015811),
angle = 3744.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,882.015811),
angle = 4068.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,947.732200),
angle = 3816.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,947.732200),
angle = 4212.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,1009.979657),
angle = 4140.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1200.311896,760.989828),
angle = 4140.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1253.262746,722.518784),
angle = 4536.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1253.262746,799.460873),
angle = 4464.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,660.271327),
angle = 4572.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,698.742371),
angle = 4968.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1391.889870,698.742371),
angle = 5004.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1371.664445,760.989828),
angle = 5400.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,861.708330),
angle = 4428.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,823.237286),
angle = 4752.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(560.127124,-231.500554),
angle = 5472.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,-193.029509),
angle = 5508.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(486.950850,-255.276966),
angle = 5904.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(424.450850,-44.758182),
angle = 5040.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,-107.005639),
angle = 5004.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,-107.005639),
angle = 5328.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1452.566145,607.105652),
angle = 5220.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1497.791570,544.858195),
angle = 5292.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,544.858195),
angle = 5256.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1570.967844,455.365393),
angle = 5076.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1609.594968,508.531068),
angle = 5292.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1623.918694,416.894348),
angle = 5040.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1662.545818,470.060024),
angle = 5328.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1682.771243,532.307481),
angle = 5724.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1570.967844,70.654950),
angle = 5724.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,295.868366),
angle = 4968.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,230.151977),
angle = 5112.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1684.594968,230.151977),
angle = 5076.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1684.594968,295.868366),
angle = 5364.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1664.369544,167.904520),
angle = 5400.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1664.369544,358.115823),
angle = 5760.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1726.869544,378.423304),
angle = 5976.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1747.094968,316.175847),
angle = 6012.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1800.045818,354.646891),
angle = 6408.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1623.918694,109.125995),
angle = 5760.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(267.422026,171.373452),
angle = 2592.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(214.471176,209.844496),
angle = 2628.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(194.245751,147.597039),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(151.971176,230.151977),
angle = 2916.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(86.520327,230.151977),
angle = 3312.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(131.745751,167.904520),
angle = 3240.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,114.738844),
angle = 2952.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(257.872876,76.267800),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(331.049150,52.491387),
angle = 3276.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(192.422026,76.267800),
angle = 3384.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(212.647451,14.020343),
angle = 3780.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(384.000000,14.020343),
angle = 3240.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(331.049150,-24.450701),
angle = 3564.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,-86.698158),
angle = 3528.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(257.872876,-48.227114),
angle = 3852.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1725.045818,449.752543),
angle = 6336.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1790.496668,449.752543),
angle = 6732.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1745.271243,512.000000),
angle = 6660.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1843.447518,411.281499),
angle = 6768.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1863.672942,473.528956),
angle = 7164.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1726.869544,147.597039),
angle = 5544.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1747.094968,209.844496),
angle = 5508.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1800.045818,171.373452),
angle = 5832.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1566.193269,565.165676),
angle = 5652.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1619.144119,603.636720),
angle = 6048.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1545.967844,627.413133),
angle = 5976.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1684.594968,603.636720),
angle = 6084.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1664.369544,665.884177),
angle = 6480.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1493.016994,665.884177),
angle = 5940.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1545.967844,704.355221),
angle = 6264.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(379.225425,-172.722028),
angle = 5472.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(444.676275,-172.722028),
angle = 5436.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(424.450850,-234.969485),
angle = 5760.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1454.389870,719.049852),
angle = 5292.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1507.340720,757.520897),
angle = 5688.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1434.164445,781.297310),
angle = 5616.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,1127.536707),
angle = 5220.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,1189.784165),
angle = 5184.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1077.135621,1169.476684),
angle = 5472.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,1189.784165),
angle = 5508.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1033.733922,1226.111291),
angle = 5472.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1072.361046,1279.276966),
angle = 5616.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1019.410197,1317.748011),
angle = 5580.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(980.783072,1264.582335),
angle = 5868.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1072.361046,1356.219055),
angle = 5904.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(960.557647,1202.334878),
angle = 6264.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(898.057647,1222.642359),
angle = 6480.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,1284.889816),
angle = 6516.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(852.832223,1284.889816),
angle = 6912.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(784.430523,1264.582335),
angle = 7272.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1139.635621,1255.500554),
angle = 5256.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,1255.500554),
angle = 5652.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1159.861046,1317.748011),
angle = 5580.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1139.635621,1379.995468),
angle = 5544.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1205.086471,1379.995468),
angle = 5868.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1200.311896,1068.758182),
angle = 5580.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1253.262746,1030.287138),
angle = 5976.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1253.262746,1107.229226),
angle = 5904.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,968.039681),
angle = 6012.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,1006.510725),
angle = 6408.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1273.488171,1169.476684),
angle = 5868.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1326.439020,1131.005639),
angle = 6192.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,728.131634),
angle = 6552.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,793.848023),
angle = 6768.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1684.594968,728.131634),
angle = 6516.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1684.594968,793.848023),
angle = 6804.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1664.369544,856.095480),
angle = 7200.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1751.869544,627.413133),
angle = 6084.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1790.496668,574.247457),
angle = 6228.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1843.447518,612.718501),
angle = 6192.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1804.820393,665.884177),
angle = 6480.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1863.672942,550.471044),
angle = 6516.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1751.869544,704.355221),
angle = 6876.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1790.496668,757.520897),
angle = 7092.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1843.447518,719.049852),
angle = 7128.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1863.672942,781.297310),
angle = 7524.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1785.722093,263.010172),
angle = 5580.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1838.672942,224.539127),
angle = 5976.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1838.672942,301.481216),
angle = 5904.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1365.066145,876.402961),
angle = 4896.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1312.115295,914.874005),
angle = 4860.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1365.066145,953.345050),
angle = 5184.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-25.283072,266.479103),
angle = 2232.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-39.606798,358.115823),
angle = 1980.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-78.233922,304.950148),
angle = 2268.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-98.459347,242.702690),
angle = 2664.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-80.057647,416.894348),
angle = 1980.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-142.557647,396.586867),
angle = 2196.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-100.283072,479.141805),
angle = 1944.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-162.783072,458.834324),
angle = 2232.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-215.733922,420.363280),
angle = 2628.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-34.832223,479.141805),
angle = 2268.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-34.832223,544.858195),
angle = 2412.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-100.283072,544.858195),
angle = 2376.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-80.057647,607.105652),
angle = 2700.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-39.606798,665.884177),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(18.118627,209.844496),
angle = 2592.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-34.832223,171.373452),
angle = 2988.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(38.344052,147.597039),
angle = 2916.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-100.283072,171.373452),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-80.057647,109.125995),
angle = 3420.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(91.294902,109.125995),
angle = 2880.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(38.344052,70.654950),
angle = 3204.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,852.626548),
angle = 5256.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1497.791570,852.626548),
angle = 5652.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1452.566145,914.874005),
angle = 5580.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1550.742419,814.155504),
angle = 5688.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1570.967844,876.402961),
angle = 6084.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1623.918694,914.874005),
angle = 6120.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1570.967844,953.345050),
angle = 6516.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,977.121462),
angle = 5544.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1497.791570,977.121462),
angle = 5868.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1747.094968,814.155504),
angle = 7452.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1800.045818,852.626548),
angle = 7848.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1726.869544,876.402961),
angle = 7776.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1865.496668,852.626548),
angle = 7884.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1845.271243,914.874005),
angle = 8280.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1371.664445,1068.758182),
angle = 6480.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1434.164445,1048.450701),
angle = 6624.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1454.389870,1110.698158),
angle = 6588.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1391.889870,1131.005639),
angle = 6876.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1507.340720,1072.227114),
angle = 6912.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1550.742419,1015.592507),
angle = 7272.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1316.889870,1226.111291),
angle = 5868.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1278.262746,1279.276966),
angle = 6084.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1369.840720,1264.582335),
angle = 5832.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1331.213595,1317.748011),
angle = 6120.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1278.262746,1356.219055),
angle = 6516.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1390.066145,1202.334878),
angle = 6156.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1452.566145,1222.642359),
angle = 6300.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1432.340720,1284.889816),
angle = 6264.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1497.791570,1284.889816),
angle = 6588.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(741.028824,1321.216943),
angle = 7272.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(779.655948,1374.382618),
angle = 7416.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(726.705098,1412.853662),
angle = 7380.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(688.077974,1359.687987),
angle = 7668.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(779.655948,1451.324707),
angle = 7704.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(667.852549,1297.440530),
angle = 8064.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(605.352549,1317.748011),
angle = 8280.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(625.577974,1379.995468),
angle = 8316.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(560.127124,1379.995468),
angle = 8712.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,1350.606205),
angle = 7128.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(918.283072,1350.606205),
angle = 7164.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(898.057647,1412.853662),
angle = 7560.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1033.733922,1409.384730),
angle = 6048.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(980.783072,1370.913686),
angle = 6012.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(960.557647,1433.161143),
angle = 6336.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(852.832223,1475.101119),
angle = 7632.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(891.459347,1528.266795),
angle = 7776.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(838.508497,1566.737839),
angle = 7740.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(799.881373,1513.572164),
angle = 8028.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(891.459347,1605.208883),
angle = 8064.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(486.950850,1356.219055),
angle = 8784.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(424.450850,1376.526536),
angle = 9000.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(507.176275,1418.466512),
angle = 8748.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(444.676275,1438.773993),
angle = 9036.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(379.225425,1438.773993),
angle = 9432.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(310.823725,1418.466512),
angle = 9792.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(623.754249,1451.324707),
angle = 8316.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(686.254249,1471.632188),
angle = 8460.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,1533.879645),
angle = 8424.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(603.528824,1513.572164),
angle = 8712.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(731.479673,1533.879645),
angle = 8748.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(550.577974,1475.101119),
angle = 9108.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(511.950850,1528.266795),
angle = 9324.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(564.901699,1566.737839),
angle = 9360.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(511.950850,1605.208883),
angle = 9756.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(731.479673,1599.596034),
angle = 8892.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(666.028824,1599.596034),
angle = 8856.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(686.254249,1661.843491),
angle = 9180.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1493.016994,1163.863834),
angle = 6660.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1545.967844,1125.392790),
angle = 7056.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1545.967844,1202.334878),
angle = 6984.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1566.193269,1264.582335),
angle = 6948.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1619.144119,1226.111291),
angle = 7272.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,1035.899988),
angle = 7272.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1619.144119,1101.616377),
angle = 7488.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1684.594968,1035.899988),
angle = 7236.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1684.594968,1101.616377),
angle = 7524.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1664.369544,1163.863834),
angle = 7920.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1664.369544,973.652531),
angle = 7560.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1726.869544,953.345050),
angle = 7704.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(1747.094968,1015.592507),
angle = 7668.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(1800.045818,977.121462),
angle = 7992.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-34.832223,46.878538),
angle = 3492.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(129.922026,55.960319),
angle = 2952.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(76.971176,17.489275),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(150.147451,-6.287138),
angle = 3276.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-80.057647,724.662702),
angle = 3060.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-142.557647,704.355221),
angle = 3276.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-100.283072,786.910159),
angle = 3024.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-162.783072,766.602678),
angle = 3312.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-215.733922,728.131634),
angle = 3708.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-34.832223,786.910159),
angle = 3348.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-34.832223,852.626548),
angle = 3492.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-100.283072,852.626548),
angle = 3456.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-80.057647,914.874005),
angle = 3780.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-142.557647,627.413133),
angle = 2844.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
t:addTile(Tile({
position = vec2(-162.783072,565.165676),
angle = 2808.000000,
scale = 1.000000,
ptile = tt["dart"]
}))
t:addTile(Tile({
position = vec2(-215.733922,603.636720),
angle = 3132.000000,
scale = 1.000000,
ptile = tt["kite"]
}))
end
local sensitivity = 30
local tolerance = 1
cimport "MathsUtilities"
Tile = class()
function Tile:init(t)
t = t or {}
self.position = t.position or vec2(RectAnchorOf(Portrait,"centre"))
self.angle = t.angle or 0
self.oangle = self.angle
self.scale = t.scale or 1
self.ptile = t.ptile or t.prototile
self.edges = {}
self.overlap = false
self.valid = true
self.overlaps = {}
self.otint = t.tint or color(117, 31, 103, 255)
self:setTint()
end
local fmts = {}
fmts["Codea"] = [[Tile({
position = vec2(%f,%f),
angle = %f,
scale = %f,
tint = color(%d,%d,%d,%d),
ptile = tt["%s"]
})]]
fmts["TikZ"] = [[\pic[
at={(%f,%f)},
rotate=%f,
scale=%f,
fill RGBA={%d,%d,%d,%d},
%s
];
]]
function Tile:serialise(fmt)
fmt = fmts[fmt] or fmt["Codea"]
return string.format(fmt,
self.position.x/100,
self.position.y/100,
self.angle,
self.scale,
self.tint.r,
self.tint.g,
self.tint.b,
self.tint.a,
self.ptile.name
)
end
function Tile:draw(c)
pushMatrix()
pushStyle()
translate(self.position)
rotate(self.angle)
scale(self.scale)
if not c then
c = self.tint
if not self.valid or self.overlap then
c = c:mix(color(0, 255, 17, 255),.5)
end
if self.parent then
c = c:mix(color(100, 102, 103, 255),.5)
end
end
tint(c)
self.ptile:draw()
popStyle()
popMatrix()
end
function Tile:drawEdges()
pushMatrix()
pushStyle()
if not self.valid or self.overlap then
stroke(228, 99, 203, 255)
end
translate(self.position)
rotate(self.angle)
scale(self.scale)
strokeWidth(strokeWidth()/self.scale)
local pts,n = self.ptile.points,self.ptile.npoints
for k=1,n do
if not self.edges[k] or not self.valid or self.overlap then
line(pts[k],pts[k%n+1])
end
end
popStyle()
popMatrix()
end
local tmesh = mesh()
tmesh.vertices = {
vec2(0,0),
vec2(1,0),
vec2(1,1),
vec2(0,0),
vec2(0,1),
vec2(1,1)
}
tmesh:setColors(255,255,255,255)
local __pixel = image(1,1)
local width,height,centre,orientation,useImage,zll,zsize
centre,zll,zsize = vec2(0,0),vec2(0,0),vec2(1,1)
Tile.granularity = 1
function Tile.setZoom(c,s)
zll = zll * s - c
zsize = zsize / s
end
local function fract(x)
local q,r = math.modf(x)
return r
end
function Tile.setTexture(i,z)
if not tmesh.shader then
tmesh.shader = shader("Documents:Tiled Texture")
end
if i then
tmesh.texture = i
elseif i == nil then
i = tmesh.texture
else
useImage = false
return
end
useImage = true
zll,zsize = vec2(z.ll.x, z.ll.y), vec2(z.size.x,z.size.y)
local w,h = spriteSize(i)
local sw,sh = RectAnchorOf(Screen,"size")
width = math.min(sw,w*sh/h)
height = math.min(sh,h*sw/w)
centre = vec2(.5,.5) - vec2(sw/width,sh/height)/2
orientation = CurrentOrientation
end
function Tile:setTint()
if useImage then
local texc = {}
local u = vec2(0,0)
local g = Tile.granularity
for k,v in ipairs(self.ptile.bb) do
u = g*self.scale * v:rotate(self.angle) + self.position
u.x = zsize.x * (u.x + zll.x)
u.y = zsize.y * (u.y + zll.y)
u = Orientations(PORTRAIT,orientation,u)
u.x = u.x / width
u.y = u.y / height
u = u + centre
table.insert(texc,u)
end
tmesh.texCoords = texc
setContext(__pixel)
background(0, 0, 0, 255)
tmesh:draw()
setContext()
local r,g,b,a = __pixel:get(1,1)
self.tint = color(r,g,b,255)
else
self.tint = self.otint
end
end
function Tile:isTouchedBy(t,b)
local tv = vec2(t.x,t.y) - self.position
if tv:len() > self.ptile.radius * self.scale then
return false
end
if self.ptile:checkTouch(tv:rotate(-math.rad(self.angle))/self.scale) then
if not b then
self.tpoint = tv
self:forget()
self.transitory = true
self.valid = true
self.overlap = false
self.tiles:raiseTile(self,true)
end
return true
end
return false
end
function Tile:processTouches(g)
if g.type.ended then
self.transitory = false
if g.type.tap then
self.angle = (self.angle + self.ptile.dAngle)%360
else
self.tiles:lowerTile()
end
if not self:maybeDestroy(g.touchesArr[1]) then
local a,b,c
a = self:adjustPosition()
b = self:checkEdges({adjust = true})
c = self:checkOverlaps(true)
if c and (a or b) then
self.tiles:addProcess(
function()
local bt = self.tiles.ntiles
self:checkNeighbours(
self.tiles.checkLevel,
self.tiles.autoForce)
if self.tiles.ntiles > bt then
for k=bt,self.tiles.ntiles do
self.tiles.tiles[k].parent = nil
end
end
end
)
end
end
g:reset()
else
local t = g.touchesArr[1].touch
local tv = vec2(t.x,t.y)
self.position = tv - self.tpoint
end
self:setTint()
g:noted()
end
function Tile:adjustPosition()
local d,di,dl,dil,opt
local pt = self.ptile
dil = sensitivity
for k,v in ipairs(self.tiles.tiles) do
if v ~= self then
opt = v.ptile
if self.position:dist(v.position) < pt.radius/self.scale + opt.radius/v.scale + sensitivity then
for l,u in ipairs(pt.points) do
for m,w in ipairs(opt.points) do
d = u:rotate(math.rad(self.angle))*self.scale+self.position-w:rotate(math.rad(v.angle))*v.scale-v.position
dl = d:len()
if dl < dil -- and dl > tolerance
then
di = d
dil = dl
end
end
end
end
end
end
if di then
self.position = self.position - di
return true
end
return false
end
function Tile:checkEdges(t)
t = t or {}
local st = t.start or 1
local ed = t.last or self.tiles.ntiles
if ed < st then
return
end
local ret = false
local edges = {}
local d,di,dl,dil,opt,legal,u,uu,w,ww,nopts,v
local pt,n,ne = self.ptile,self.ptile.npoints,0
dil = sensitivity
legal = true
for k=st,ed do
v = self.tiles.tiles[k]
if v ~= self then
opt = v.ptile
if self.position:dist(v.position) < pt.radius/self.scale + opt.radius/v.scale + sensitivity then
nopts = opt.npoints
for l=1,n do
u,uu = pt.points[l],pt.points[l%n+1]
u = u:rotate(math.rad(self.angle))*self.scale + self.position
uu = uu:rotate(math.rad(self.angle))*self.scale + self.position
for m=1,nopts do
if pt.edges[l][1] == opt.edges[m][2] then
w,ww = opt.points[m%nopts+1],opt.points[m]
w = w:rotate(math.rad(v.angle))*v.scale + v.position
ww = ww:rotate(math.rad(v.angle))*v.scale + v.position
if (u-w):len() + (uu -ww):len() < tolerance then
if not edges[l] then
ne = ne + 1
end
edges[l] = {v,m}
ret = true
end
end
end
end
if ne >= n then
break
end
end
end
end
if t.adjust then
for k,v in pairs(self.edges) do
v[1].edges[v[2]] = nil
end
for k,v in pairs(edges) do
v[1].edges[v[2]] = {self,k}
end
end
self.edges = edges
return ret
end
function Tile:onBoundary()
local n = self.ptile.npoints
for k=1,n do
if not self.edges[k] then
return true
end
end
return false
end
function Tile:forget()
local n
for k,v in pairs(self.edges) do
v[1].edges[v[2]] = nil
end
for k,v in pairs(self.overlaps) do
k.overlaps[self] = nil
k.overlap = false
for l,u in pairs(k.overlaps) do
k.overlap = true
break
end
if not self.transitory then
self.tiles:raiseTile(k,true)
end
end
if not self.transitory then
self.transitory = true
for k,v in ipairs(self.tiles.tiles) do
if v ~= self
and not v.valid
and self.position:dist(v.position) < self.ptile.radius/self.scale + v.ptile.radius/v.scale + sensitivity then
v.valid = true
v:checkNeighbours()
end
end
self.transitory = false
end
end
function Tile:destroy()
self:forget()
self.destroyed = true
end
function Tile:checkOverlaps(propagate)
local overlap = false
local overlaps = {}
local tri,ntri = {},0
for k,v in ipairs(self.ptile.triangles) do
table.insert(tri,v:rotate(math.rad(self.angle))*self.scale + self.position)
ntri = ntri + 1
end
local otri,notri,lv
for k,v in ipairs(self.tiles.tiles) do
if v ~= self
-- and not v.transitory
then
if self.position:dist(v.position) < self.ptile.radius/self.scale + v.ptile.radius/v.scale + sensitivity then
otri,notri,lv = {},0,true
for l,u in ipairs(v.ptile.triangles) do
table.insert(otri,u:rotate(math.rad(v.angle))*v.scale + v.position)
notri = notri + 1
end
for i=1,ntri,3 do
for j=1,notri,3 do
if TriangleIntersect(tri[i],tri[i+1],tri[i+2],otri[j],otri[j+1],otri[j+2],10) then
lv = false
end
end
end
if not lv then
overlaps[v] = true
overlap = true
end
end
end
end
self.overlap = overlap
if propagate then
local raise = {}
for k,v in pairs(self.overlaps) do
table.insert(raise,{k,k.overlap})
end
for k,v in pairs(overlaps) do
table.insert(raise,{k,k.overlap})
end
for k,v in pairs(self.overlaps) do
k.overlaps[self] = overlaps[k]
k.overlap = false
for l,u in pairs(k.overlaps) do
k.overlap = true
break
end
end
for k,v in pairs(overlaps) do
k.overlaps[self] = true
k.overlap = true
end
for k,v in ipairs(raise) do
if v[1].overlap ~= v[2] then
self.tiles:raiseTile(v[1])
end
end
end
self.overlaps = overlaps
return not overlap
end
function Tile:checkNeighbours(recurse,create,time)
recurse = recurse or 0
time = time or 0
local st = os.clock()
local pt,n = self.ptile,self.ptile.npoints
local ptiles,np = {},0
for k,v in ipairs(self.tiles.creators) do
if not v.ignore then
np = np + 1
table.insert(ptiles,v)
end
end
if np == 0 then
return true
end
local tile,p,nt,opt,ang,em,nopts,fast
local added = false
local tadded = {}
for k=1,n do
if not self.edges[k] then
nt = 0
em = {}
ang = math.deg(vec2(1,0):angleBetween(pt.points[k%n+1] - pt.points[k])) + self.angle
for _,u in ipairs(ptiles) do
opt = u.ptile
nopts = opt.npoints
for _,l in ipairs(opt.cedges) do
if pt.edges[k][1] == opt.edges[l][2] then
tang = (180 - math.deg(vec2(1,0):angleBetween(opt.points[l%nopts+1] - opt.points[l])) + ang)%360
tile = Tile({ptile = opt, scale = u.scale, angle = tang, position = self.position + pt.points[k]:rotate(math.rad(self.angle))*self.scale - opt.points[l%nopts+1]:rotate(math.rad(tang))*u.scale, tint = self.otint})
self.tiles:addTile(tile)
tile.transitory = true
if coroutine.running() then
fast = coroutine.yield()
end
if coroutine.running() and not fast then
while os.clock() - st < self.tiles.checkSpeed do
if coroutine.yield() then
fast = true
break
end
end
end
st = os.clock()
tile:checkOverlaps()
if coroutine.running() and fast then
self.tiles:removeTile(tile)
nt = -1
break
end
-- tile.transitory = true
if not tile.overlap and recurse > 0 then
tile:checkEdges({adjust = false})
tile:checkNeighbours(recurse-1,false,time)
end
self.tiles:removeTile(tile)
tile.transitory = nil
if not tile.overlap and tile.valid then
if not create then
nt = -1
break
end
nt = nt + 1
table.insert(em, tile)
end
end
end
if nt == -1 or (nt > 1 and create ~= 1) then
break
end
end
if nt == 0 then
self.valid = false
break
elseif nt == 1 and create then
em = em[1]
self.tiles:addTile(em)
em.transitory = true
em:checkEdges({adjust = true})
em.parent = self
added = true
table.insert(tadded,em)
elseif nt > 1 and create == 1 then
em = em[math.random(1,nt)]
self.tiles:addTile(em)
em.transitory = true
em:checkEdges({adjust = true})
added = true
table.insert(tadded,em)
end
end
end
if not self.valid then
local tl = self
while tl.parent and tl.transitory do
if not tl.valid then
tl.parent.valid = false
end
self.tiles:removeTile(tl)
tl.transitory = nil
tl = tl.parent
end
if tl.transitory then
self.tiles:removeTile(tl)
tl.transitory = nil
end
end
if added and not self.valid then
for k,v in ipairs(tadded) do
self.tiles:removeTile(v)
v.transitory = nil
end
added = false
end
st = os.clock()
if added and create == true then
for k,v in ipairs(tadded) do
if coroutine.running() and not coroutine.yield() then
while os.clock() - st < time do
if coroutine.yield() then
break
end
end
end
st = os.clock()
v:checkNeighbours(recurse-1,true,time)
v.transitory = nil
end
end
return added
end
function Tile:maybeDestroy(t)
local tp,tv
tp = t.utouch or t.touch
tp = vec2(tp.x,tp.y)
for k,v in ipairs(self.tiles.creators) do
if v.ptile.name == self.ptile.name then
tv = tp - v.position - vec2(WIDTH,HEIGHT)
if v.ptile:checkTouch(tv:rotate(-math.rad(v.angle))/v.scale) then
self.tiles:removeTile(self)
return true
end
end
end
return false
end
Tiles = class()
local Font,_,Textarea = unpack(cimport "Font")
cimport "Coordinates"
local Colour = unpack(cimport "Colour")
cimport "ColourNames"
local sensitivity = 30
local fmts = {}
local allowedTime = 0.01
local bgtcoords = {
vec2(0,1),vec2(0,0),vec2(1,0),vec2(0,1),vec2(1,0),vec2(1,1)
} -- normal
function Tiles:init(t,u)
self.tiles = {}
self.ntiles = 0
t:pushHandler(self)
self.touchHandlers = t:pushHandlers()
self.touchHandlers[1] = {{}}
self.touchHandlers[2] = {{}}
self.touchHandler = t
self.ui = u
self.tileTypes = {}
self.creators = {}
self.zoom = cimport "Zoom"()
local f = self.zoom.isTouchedBy
self.zoom.isTouchedBy = function(s,t)
t = TransformTouch(PORTRAIT,t)
return f(s,t)
end
local f = self.zoom.processTouches
self.zoom.processTouches = function(s,g)
g:transformTouches(PORTRAIT)
return f(s,g)
end
local g = t:pushHandler(self.zoom)
local gr = g.reset
g.reset = function ()
self:redrawbg()
gr(g)
end
self.checkLevel = 0
self.forceSpeed = 0
self.checkSpeed = 0
self.autoForce = false
self.checkEdges = true
self.bgd = image(RectAnchorOf(Portrait,"size"))
self.bg = image(RectAnchorOf(Portrait,"size"))
self.bgzoom = {vec2(0,0),vec2(1,1)}
self.newtiles = {}
self.oldtiles = {}
self.nnewtiles = 0
self.angle = 0
self.bgmesh = mesh()
self.bgmesh:addRect(
Portrait[3]/2,Portrait[4]/2,Portrait[3],Portrait[4])
self.bgmesh:setColors(Colour.svg.White)
self.bgmesh.shader = shader("Documents:Tiled Texture")
self.bgmesh.texture = image(1,1)
self.bgtcoords = {
vec2(0,1),vec2(0,0),vec2(1,0),vec2(0,1),vec2(1,0),vec2(1,1)
} -- normal
self.bgmesh.texCoords = self.bgtcoords
self.bgcolour = Colour.transparent
self.processes = {}
t.interrupt = self
end
function Tiles:setMenus(tileTypes)
self.ui:declareKeyboard({name = "ArialMT", type = "fullqwerty"})
local tarea = Textarea({
font = Font({name = "AmericanTypewriter", size = 20}),
pos = function()
return WIDTH/2,3*HEIGHT/4
end,
anchor = "centre",
width = "20em",
height = "1lh",
})
self.ui:addElement(tarea)
local m = self.ui:addMenu({
title = "Tile Options",
attach = true
})
m:addItem({
title = "Overlay",
action = function()
self:setOverlay()
return true
end,
highlight = function()
return self.overlay
end
})
m:addItem({
title = "Clear",
action = function()
self:clearScreen()
return true
end
})
m:addItem({
title = "Remove Invalid Tiles",
action = function()
self:removeInvalidTiles()
return true
end
})
m:addItem({
title = "Remove Off-screen Tiles",
action = function()
self:removeOffTiles()
return true
end
})
m:addItem({
title = "Remove Inside Area",
action = function()
self:removeInArea()
return true
end
})
m:addItem({
title = "Remove Outside Area",
action = function()
self:removeOutArea()
return true
end
})
m:addItem({
title = "Snapshot",
action = function()
local str = ""
tarea:activate()
tarea:clear()
self.ui:useKeyboard("fullqwerty",
function(k)
if k == RETURN then
if str ~= "" then
self:snapshot(str)
end
tarea:deactivate()
return true
elseif k == BACKSPACE then
str = string.sub(str,1,-2)
else
str = str .. k
end
tarea:setLines(str)
end)
return true
end
})
local ml = self.ui:addMenu()
ml:isChildOf(m)
local st = {}
local savedTiles = savedTiles or {}
for k,v in pairs(savedTiles) do
table.insert(st,k)
end
table.sort(st)
for k,v in ipairs(st) do
ml:addItem({
title = v,
action = function()
self:load(savedTiles[v],tileTypes)
return true
end
})
end
local me = self.ui:addMenu()
me:isChildOf(m)
local st = {}
for k,v in pairs(fmts) do
table.insert(st,k)
end
table.sort(st)
for k,v in ipairs(st) do
me:addItem({
title = v,
action = function()
local str = ""
tarea:activate()
tarea:clear()
self.ui:useKeyboard("fullqwerty",
function(k)
if k == RETURN then
if str ~= "" and not savedTiles[str] then
local s = self:serialise(str,v)
if v == "Codea" and s then
local f = loadstring(s)
f()
ml:addItem({
title = str,
action = function()
self:load(savedTiles[str],tileTypes)
return true
end
})
end
end
tarea:deactivate()
return true
elseif k == BACKSPACE then
str = string.sub(str,1,-2)
else
str = str .. k
end
tarea:setLines(str)
end)
return true
end
})
end
m:addSubMenu("Load",ml)
m:addSubMenu("Export",me)
m:addItem({
title = "Replace Tiles",
action = function()
self:replaceTiles()
return true
end,
highlight = function()
return self.isReplacing
end
})
m:addItem({
title = "Add Forced",
action = function()
self:addForced()
return true
end,
highlight = function()
return self.isForcing
end
})
m:addItem({
title = "Generate",
action = function()
if self.isGenerating then
self:endProcesses()
else
self:addForced(true)
end
return true
end,
highlight = function()
return self.isGenerating
end
})
m:addItem({
title = "Auto Force",
action = function()
self.autoForce = not self.autoForce
return true
end,
highlight = function()
return self.autoForce
end
})
m:addItem({
title = "Edge Checking",
action = function()
self.checkEdges = not self.checkEdges
self:addProcess(function()
self:recheckEdges()
-- self:resetCreators()
end,true,true)
return true
end,
highlight = function()
return self.checkEdges
end
})
m:addItem({
title = "Set forcing speed",
action = function()
self.ui:getNumberSpinner({
maxdigits = 1,
maxdecs = 2,
allowSignChange = false,
value = self.forceSpeed,
action = function(n)
self.forceSpeed = n
return true
end
})
return true
end
})
m:addItem({
title = "Set checking level",
action = function()
self.ui:getNumberSpinner({
maxdigits = 1,
maxdecs = 0,
allowSignChange = false,
value = self.checkLevel,
action = function(n)
self.checkLevel = n
return true
end
})
return true
end
})
m:addItem({
title = "Set checking speed",
action = function()
self.ui:getNumberSpinner({
maxdigits = 1,
maxdecs = 2,
allowSignChange = false,
value = self.checkSpeed,
action = function(n)
self.checkSpeed = n
return true
end
})
return true
end
})
m:addItem({
title = "Use Picture",
action = function()
self.image = not self.image
local ifn = function (i)
Tile.setTexture(i,self.zoom)
self:reTintTiles()
return true
end
if self.image then
ui:getPicture(function (i)
ifn(i)
return true
end)
else
ifn(false)
end
return true
end,
highlight = function()
if self.image then
return true
else
return false
end
end
})
m:addItem({
title = "Reset Picture",
action = function()
if self.image then
Tile.setTexture(nil,self.zoom)
self:reTintTiles()
return true
end
return false
end
})
m:addItem({
title = "Set Granularity",
action = function()
self.ui:getNumberSpinner({
maxdigits = 1,
maxdecs = 2,
allowSignChange = false,
value = Tile.granularity,
action = function(n)
Tile.granularity = n
self:reTintTiles()
return true
end
})
return true
end
})
m = self.ui:addMenu({
title = "View",
attach = true
})
m:addItem({
title = "Reset",
action = function()
self.zoom:reset()
self:redrawbg()
return true
end
})
m:addItem({
title = "Zoom In",
action = function()
self.zoom:zoom(2)
self:redrawbg()
return true
end
})
m:addItem({
title = "Zoom Out",
action = function()
self.zoom:zoom(1/2)
self:redrawbg()
return true
end
})
m:addItem({
title = "Single Tiles",
action = function()
self:toggleTouches()
return true
end,
highlight = function()
if self.tdisabled then
return false
else
return true
end
end
})
local bgm = ui:addMenu({
title = "Background",
attach = true
})
bgm:addItem({
title = "Background Image",
action = function()
ui:getPicture(
function(i)
for l,u in ipairs(bgtcoords) do
self.bgtcoords[l] = InvUSOrientation(CurrentOrientation,u)
end
self.bgmesh.texture = i
local w,h = spriteSize(i)
local a = (RectAnchorOf(Screen,"width")/w )/(RectAnchorOf(Screen,"height")/h)
w = math.max(1,a)
h = math.max(1,1/a)
centre = vec2(.5,.5) - vec2(w,h)/2
local texc = {}
local u
for k,v in ipairs(self.bgtcoords) do
u = vec2(0,0)
u.x = v.x*w
u.y = v.y*h
u = u + centre
table.insert(texc,u)
end
self.bgmesh.texCoords = texc
return true
end
)
return true
end
})
bgm:addItem({
title = "Clear Background Image",
action = function()
self.bgmesh.texture = image(1,1)
return true
end
})
for _,v in ipairs({
{"Rotate Clockwise", USRotateCCW}, -- rotate tex coords other way
{"Rotate Anticlockwise", USRotateCW},
{"Reflect Horizontally", USReflectH},
{"Reflect Vertically", USReflectV},
}) do
bgm:addItem({
title = v[1],
action = function()
for l,u in ipairs(self.bgtcoords) do
self.bgtcoords[l] = v[2](u)
end
local w,h = spriteSize(self.bgmesh.texture)
local bx = self.bgmesh.texCoords[5] - self.bgmesh.texCoords[1]
bx.x = bx.x * w
bx.y = bx.y * h
bx = v[2](bx) - v[2](vec2(0,0))
local a = math.abs((bx.x/w)/(bx.y/h))
w = math.max(1,a)
h = math.max(1,1/a)
centre = vec2(.5,.5) - vec2(w,h)/2
local texc = {}
local u
for k,v in ipairs(self.bgtcoords) do
u = vec2(0,0)
u.x = v.x*w
u.y = v.y*h
u = u + centre
table.insert(texc,u)
end
self.bgmesh.texCoords = texc
return true
end
})
end
bgm:addItem({
title = "Background Image Tint",
action = function()
ui:getColour(
function(c)
self.bgmesh:setColors(c)
return true
end
)
return true
end
})
bgm:addItem({
title = "Background Colour",
action = function()
ui:getColour(
self.bgcolour,
function(c)
self.bgcolour = c
return true
end
)
return true
end
})
local ptm = ui:addMenu({
title = "Tile Style",
attach = true
})
ptm:addItem({
title = "Edge Colour",
action = function()
ui:getColour(
self.creators[1].ptile.edgeColour,
function(c)
for k,v in ipairs(self.creators) do
v.ptile.edgeColour = c
v.ptile:createImage()
end
self:redrawbg()
return true
end
)
return true
end
})
ptm:addItem({
title = "Tile Colour",
action = function()
ui:getColour(
self.creators[1].otint,
function(c)
for k,v in ipairs(self.tiles) do
v.otint = c
v:setTint()
end
for k,v in ipairs(self.creators) do
v.otint = c
v:setTint()
end
self:redrawbg()
return true
end
)
return true
end
})
ptm:addItem({
title = "First Path Colour",
action = function()
ui:getColour(
self.creators[1].ptile.colours[1],
function(c)
for k,v in ipairs(self.creators) do
v.ptile.colours[1] = c
v.ptile:createImage()
end
self:redrawbg()
return true
end
)
return true
end
})
ptm:addItem({
title = "Second Path Colour",
action = function()
ui:getColour(
self.creators[1].ptile.colours[2],
function(c)
for k,v in ipairs(self.creators) do
v.ptile.colours[2] = c
v.ptile:createImage()
end
self:redrawbg()
return true
end
)
return true
end
})
end
function Tiles:clear()
self:clearScreen()
self:clearCreators()
end
function Tiles:clearScreen()
self:clearTiles()
self.zoom:reset()
self.angle = 0
self.bgzoom = {vec2(0,0),vec2(1,1)}
end
function Tiles:clearTiles()
self.tiles = {}
self.ntiles = 0
self.newtiles = {}
self.oldtiles = {}
self.nnewtiles = 0
self.tileTypes = {}
self.touchHandlers[1] = {{}}
setContext(self.bg)
background(0, 0, 0, 0)
setContext()
end
function Tiles:clearCreators()
self.drawEdges = false
self.creators = {}
self.touchHandlers[2] = {{}}
end
function Tiles:resetCreators()
--[[
for k,v in ipairs(self.creators) do
v.angle = v.oangle + (v.angle - v.oangle)%360
end
self:addProcess(function()
local continue = true
while continue do
continue = false
if coroutine.yield() then
for k,v in ipairs(self.creators) do
v.angle = v.oangle
end
else
for k,v in ipairs(self.creators) do
v.angle = math.max(v.oangle,v.angle - DeltaTime*50)
if v.angle > v.oangle then
continue = true
end
end
end
end
end,true,true)
--]]
end
function Tiles:toggleTouches()
if self.tdisabled then
self.touchHandlers[1] = self.tdisabled
self.tdisabled = nil
else
self.tdisabled = self.touchHandlers[1]
self.touchHandlers[1] = {{}}
end
end
function Tiles:draw()
if DeltaTime > 1/20 then
self:drawbg()
end
self:runProcesses()
pushStyle()
pushMatrix()
TransformOrientation(PORTRAIT)
self.bgmesh:draw()
fill(self.bgcolour)
noStroke()
rectMode(CORNER)
local w,h = RectAnchorOf(Portrait,"size")
rect(0,0,w,h)
pushMatrix()
self.zoom:draw()
pushMatrix()
pushStyle()
spriteMode(CORNER)
translate(self.bgzoom[1])
scale(self.bgzoom[2])
sprite(self.bgd,0,0)
sprite(self.bg,0,0)
popStyle()
popMatrix()
for k=self.nnewtiles,1,-1 do
self.newtiles[k]:draw()
end
if self.drawEdges then
pushStyle()
strokeWidth(5)
stroke(255, 11, 0, 255)
for k=self.ntiles,1,-1 do
self.tiles[k]:drawEdges()
end
popStyle()
end
if self.overlay then
tint(255,255,255,64)
translate(-self.zoom.ll+self.zoom.mid)
for k=self.ntiles,1,-1 do
self.tiles[k]:draw()
end
end
popStyle()
popMatrix()
pushStyle()
if self.edit and self.regionStart then
local u = self.regionStart
fill(145, 158, 58, 255)
noStroke()
ellipse(u,20)
stroke(186, 76, 76, 255)
strokeWidth(5)
for k,v in ipairs(self.region) do
line(u,v)
u=v
end
end
popStyle()
popMatrix()
strokeWidth(5)
stroke(226, 209, 116, 255)
pushMatrix()
translate(WIDTH,HEIGHT)
for k,v in ipairs(self.creators) do
v:drawEdges()
v:draw()
end
popMatrix()
end
function Tiles:orientationChanged(o)
self:redrawbg()
end
function Tiles:fromScreen(v)
v = vec2(WIDTH,HEIGHT) + v
return self.zoom:fromScreen(v)
end
function Tiles:drawbg()
local n = self.nnewtiles
if n == 0 then
return
end
local t,m = {},0
pushMatrix()
resetMatrix()
setContext(self.bg)
-- TransformInverseOrientation(PORTRAIT)
self.zoom:draw()
for k=n,1,-1 do
if not self.newtiles[k].transitory then
self.newtiles[k]:draw()
table.insert(self.oldtiles,self.newtiles[k])
else
table.insert(t,self.newtiles[k])
m = m + 1
end
end
self.newtiles = t
self.nnewtiles = m
setContext()
popMatrix()
end
function Tiles:redrawbg()
self.bgzoom = { -vec2(self.zoom.ll.x, self.zoom.ll.y), vec2(1/self.zoom.size.x,1/self.zoom.size.y)}
pushMatrix()
resetMatrix()
setContext(self.bg)
-- TransformInverseOrientation(PORTRAIT)
background(0, 0, 0, 0)
self.zoom:draw()
local n = self.ntiles
local st = os.clock()
self.oldtiles = {}
for k=n,1,-1 do
self.tiles[k]:draw()
table.insert(self.oldtiles,self.tiles[k])
if coroutine.running() and os.clock() - st > allowedTime then
setContext()
popMatrix()
coroutine.yield()
pushMatrix()
setContext(self.bg)
resetMatrix()
self.zoom:draw()
st = os.clock()
end
end
self.newtiles = {}
self.nnewtiles = 0
setContext()
popMatrix()
end
function Tiles:savebg()
self:drawbg()
setContext(self.bgd)
background(0, 0, 0, 0)
pushMatrix()
pushStyle()
resetMatrix()
tint(182, 182, 182, 255)
spriteMode(CORNER)
sprite(self.bg,0,0)
popStyle()
popMatrix()
setContext()
setContext(self.bg)
background(0, 0, 0, 0)
setContext()
end
function Tiles:runProcesses()
local del,n = {},0
local ret = false
for k,v in ipairs(self.processes) do
if v.clear and k ~= 1 then
break
end
if coroutine.status(v.action) ~= "dead" then
ret = true
coroutine.resume(v.action,v.speed)
else
table.insert(del,k)
n = n + 1
end
if v.block then
break
end
end
for k=n,1,-1 do
table.remove(self.processes,del[k])
end
if ret then
for k,v in ipairs(self.creators) do
v.angle = v.oangle + (v.angle + DeltaTime*10 - v.oangle)%360
end
else
for k,v in ipairs(self.creators) do
v.angle = math.max(v.oangle,v.angle - DeltaTime*50)
end
end
end
function Tiles:addProcess(f,b,c)
local co = coroutine.create(f)
table.insert(self.processes,{action = co, block = b, clear = c})
end
function Tiles:endProcesses()
for l,u in ipairs(self.processes) do
u.speed = true
end
end
function Tiles:snapshot(pic)
local img = image(WIDTH,HEIGHT)
setContext(img)
pushMatrix()
self.zoom:draw()
for k=self.ntiles,1,-1 do
self.tiles[k]:draw()
end
pushStyle()
strokeWidth(5)
stroke(255, 11, 0, 255)
for k=self.ntiles,1,-1 do
self.tiles[k]:drawEdges()
end
popStyle()
popMatrix()
setContext()
saveImage("Documents:" .. pic,img)
end
function Tiles:setOverlay()
self.overlay = not self.overlay
end
function Tiles:addTile(t)
table.insert(self.tiles,t)
table.insert(self.newtiles,t)
if self.tdisabled then
table.insert(self.tdisabled,
self.touchHandler:registerHandler(t))
else
table.insert(self.touchHandlers[1][1],
self.touchHandler:registerHandler(t))
end
t.tiles = self
if not t.transformed then
self.zoom:transformObject(t)
local f = t.isTouchedBy
t.isTouchedBy = function(s,t)
t = TransformTouch(PORTRAIT,t)
return f(s,t)
end
local f = t.processTouches
t.processTouches = function(s,g)
g:transformTouches(PORTRAIT)
return f(s,g)
end
t.transformed = true
end
self.ntiles = self.ntiles + 1
self.nnewtiles = self.nnewtiles + 1
self.tileTypes[t.ptile.name] = true
t.destroyed = nil
end
function Tiles:lastGesture()
if self.tdisabled then
return self.tdisabled[self.ntiles]
else
return self.touchHandlers[1][1][self.ntiles]
end
end
function Tiles:removeTile(t)
local r
local n = self.ntiles
for k=n,1,-1 do
if self.tiles[k] == t then
r = k
break
end
end
if r then
table.remove(self.tiles,r)
table.remove(self.touchHandlers[1][1],r)
self.ntiles = self.ntiles - 1
t:destroy()
end
n = self.nnewtiles
for k=n,1,-1 do
if self.newtiles[k] == t then
table.remove(self.newtiles,k)
self.nnewtiles = self.nnewtiles - 1
break
end
end
end
function Tiles:removeInvalidTiles()
local r = {}
local n = self.ntiles
for k=n,1,-1 do
if not self.tiles[k].valid then
table.insert(r, k)
end
end
local t
for k,v in ipairs(r) do
t = table.remove(self.tiles,v)
table.remove(self.touchHandlers[1][1],v)
self.ntiles = self.ntiles - 1
t:destroy()
end
n,r = self.nnewtiles,{}
for k=n,1,-1 do
if not self.newtiles[k].valid then
table.insert(r, k)
end
end
for k,v in ipairs(r) do
table.remove(self.newtiles,k)
self.nnewtiles = self.nnewtiles - 1
end
end
function Tiles:removeOffTiles()
local r = {}
local n = self.ntiles
local v
local w,h = RectAnchorOf(Portrait,"size")
for k=n,1,-1 do
v = self.zoom:toScreen(self.tiles[k].position)
if v.x < 0 or v.x > w or v.y < 0 or v.y > h then
table.insert(r, k)
end
end
local t
for k,v in ipairs(r) do
t = table.remove(self.tiles,v)
table.remove(self.touchHandlers[1][1],v)
self.ntiles = self.ntiles - 1
t:destroy()
end
n,r = self.nnewtiles,{}
for k=n,1,-1 do
if not self.newtiles[k].valid then
table.insert(r, k)
end
end
for k,v in ipairs(r) do
table.remove(self.newtiles,k)
self.nnewtiles = self.nnewtiles - 1
end
end
function Tiles:removeInArea()
self:drawbg()
self.region = {}
self.edit = true
self.inside = true
end
function Tiles:removeOutArea()
self:drawbg()
self.region = {}
self.edit = true
self.inside = false
end
function Tiles:removeUsingArea()
table.insert(self.region,self.regionStart)
self.edit = false
local ll,ur = vec2(self.regionStart.x,self.regionStart.y), vec2(self.regionStart.x,self.regionStart.y)
self.regionStart = nil
local pts,n = {},0
for k,v in ipairs(self.region) do
v = self.zoom:fromScreen(v)
table.insert(pts,v)
ll.x = math.min(ll.x,v.x)
ll.y = math.min(ll.y,v.y)
ur.x = math.max(ur.x,v.x)
ur.y = math.max(ur.y,v.y)
n = n + 1
end
local a
local inside,outside = {},{}
local fn = function()
local st = os.clock()
for k,v in ipairs(self.tiles) do
if os.clock() - st > allowedTime then
if coroutine.yield() then
break
end
st = os.clock()
end
if v.position.x > ll.x
and v.position.y > ll.y
and v.position.x < ur.x
and v.position.y < ur.y
then
a = 0
for l=1,n-1 do
a = a + (pts[l]-v.position):angleBetween(pts[l+1] - v.position)
end
if math.abs(a) > 1 then
table.insert(inside,v)
else
table.insert(outside,v)
end
else
table.insert(outside,v)
end
end
local del
if self.inside then
del = inside
else
del = outside
end
for k,v in ipairs(del) do
if os.clock() - st > allowedTime then
if coroutine.yield() then
break
end
st = os.clock()
end
self:removeTile(v)
end
self:redrawbg()
-- self:resetCreators()
end
self:addProcess(fn,true,true)
end
function Tiles:addCreator(t)
local c = Creator(t)
table.insert(self.creators,c)
c.tiles = self
local h = self.touchHandler:registerHandler(c)
h[2].addTouch = function(s,t) if c.touchClaiment then c.touchClaiment[2]:addTouch(t) c.touchClaiment[1].angle = c.touchClaiment[1].angle + self.angle c.touchClaiment = nil end return true end
table.insert(self.touchHandlers[2][1],h)
return c
end
fmts["Codea"] = {
")\nt:addTile(",
"\n\nsavedTiles[\"%s\"] = function (t,tt)\nt:addTile(%s)\nend"
}
fmts["TikZ"] = {
"\n",
"\n\n--[[\n%% %s\n%s\n--]]"
}
function Tiles:serialise(m,fmt)
if self.ntiles == 0 then
return false
end
local fmtt
if fmts[fmt] then
fmtt = fmts[fmt]
else
fmtt,fmt = fmts["Codea"], "Codea"
end
local t = {}
for k,v in ipairs(self.tiles) do
table.insert(t,v:serialise(fmt))
end
local s = table.concat(t,fmtt[1])
s = string.format(fmtt[2],m,s)
m = string.gsub(m,"[^%a%d_-]","")
local tabs = listProjectTabs("Penrose Tiles Data")
table.sort(tabs)
local c = 0
for k,v in ipairs(tabs) do
if string.sub(v,1,string.len(m)) == m then
c = c + 1
end
end
if c >0 then
c = c + 1
m = string.format("%s%03d",m,c)
end
saveProjectTab("Penrose Tiles Data:" .. m,s)
return s
end
function Tiles:recheckEdges()
if not self.checkEdges then
return
end
local st = os.clock()
for k,v in ipairs(self.tiles) do
v:checkEdges({adjust = true, start = k+1})
if coroutine.running() and os.clock() - st > allowedTime then
coroutine.yield()
st = os.clock()
end
end
end
function Tiles:reTintTiles()
self:addProcess(function()
local st = os.clock()
self:savebg()
for k,v in ipairs(self.tiles) do
if os.clock() - st > allowedTime then
if coroutine.yield() then
break
end
st = os.clock()
end
v:setTint()
self:raiseTile(v)
end
setContext(self.bgd)
background(0, 0, 0, 0)
setContext()
-- self:resetCreators()
end,false,false)
end
function Tiles:load(f,tt)
self:clearScreen()
f(self,tt)
self:recheckEdges()
end
function Tiles:raiseTile(t,redraw)
--[[
local i,e
for k=self.ntiles,1,-1 do
if self.tiles[k] == t then
i = true
e = self.touchHandlers[1][1][k]
else
if i then
self.tiles[k+1] = self.tiles[k]
self.touchHandlers[1][1][k+1] = self.touchHandlers[1][1][k]
end
end
end
if i then
self.tiles[1] = t
self.touchHandlers[1][1][1] = e
end
--]]
for k,v in ipairs(self.newtiles) do
if v == t then
return
end
end
table.insert(self.newtiles,t)
self.nnewtiles = self.nnewtiles + 1
if redraw then
self:addProcess(function()
setContext(self.bg)
pushMatrix()
pushStyle()
resetMatrix()
self.zoom:draw()
blendMode(ONE,ZERO)
ellipseMode(RADIUS)
noStroke()
fill(0, 0, 0, 0)
ellipse(t.position,t.ptile.radius)
blendMode(NORMAL)
for k,v in ipairs(self.oldtiles) do
if v ~= t and t.position:dist(v.position) < t.ptile.radius/t.scale + v.ptile.radius/v.scale + sensitivity then
v:draw()
end
end
popStyle()
popMatrix()
setContext()
end,false,false)
end
end
function Tiles:lowerTile()
table.insert(self.tiles,table.remove(self.tiles,1))
table.insert(self.touchHandlers[1][1], table.remove(self.touchHandlers[1][1],1))
end
function Tiles:isTouchedBy(t)
if self.edit then
self.regionStart = OrientationInverse(PORTRAIT,vec2(t.x,t.y))
return true
end
return false
end
function Tiles:processTouches(g)
local v = vec2(g.touchesArr[1].touch.x,g.touchesArr[1].touch.y)
v = OrientationInverse(PORTRAIT,v)
if g.updated then
table.insert(self.region, v)
g:noted()
end
if g.type.finished then
if v:dist(self.regionStart) < 20 then
self:removeUsingArea()
else
self.edit = false
self.regionStart = nil
self.region = nil
end
g:reset()
end
end
function Tiles:addForced(rand)
if rand then
self.isGenerating = true
if rand == true then
rand = -1
end
else
self.isForcing = true
rand = 0
end
local mrad = 0
for k,v in ipairs(self.creators) do
if not v.ignore then
mrad = math.max(mrad,2*v.ptile.radius*v.scale)
end
end
mrad = mrad * (self.checkLevel+1)
local actives = {}
local continue = true
local n,check,v
self:addProcess(function()
local st = os.clock()
while continue do
self:drawbg()
continue = false
for k,v in ipairs(self.tiles) do
if actives[v] == nil then
actives[v] = true
elseif actives[v] then
actives[v] = false
end
end
n = self.ntiles
for k=n,1,-1 do
v = self.tiles[k]
if v.parent and v.parent.destroyed then
v.parent = nil
end
check = false
if v:onBoundary() then
for u,l in pairs(actives) do
if l and u ~= v and v.position:dist(u.position) < mrad then
check = true
break
end
end
end
if check and v.valid and v:checkNeighbours(self.checkLevel+1,true,self.forceSpeed) then
continue = true
if not coroutine.yield() then
while os.clock() - st < self.forceSpeed do
if coroutine.yield() then
break
end
end
end
st = os.clock()
end
end
if rand ~= 0 and not continue and not coroutine.yield() then
local etiles,ne = {},0
local p
for k,v in ipairs(self.tiles) do
if v:onBoundary() then
p = self.zoom:toScreen(v.position)
if p.x > 0 and p.x < WIDTH
and p.y > 0 and p.y < HEIGHT then
table.insert(etiles,v)
ne = ne + 1
end
end
end
if ne > 0 and etiles[math.random(1,ne)]:checkNeighbours(self.checkLevel,1) then
continue = true
rand = math.max(rand-1,-1)
end
end
end
n = self.ntiles
for k=1,n do
self.tiles[k].parent = nil
end
self.isForcing = false
self.isGenerating = false
-- self:resetCreators()
end,true,true)
end
function Tiles:interruption(t)
local prun = false
for k,v in ipairs(self.processes) do
if coroutine.status(v.action) ~= "dead" then
prun = true
break
end
end
if not prun then
return false
end
for k,v in ipairs(self.creators) do
if v:isTouchedBy(t.touch,true) then
self:endProcesses()
return true
end
end
end
function Tiles:replaceTiles()
local n = self.ntiles
if n == 0 then
return
end
self.isReplacing = true
self:savebg()
local otiles = self.tiles
self:clearTiles()
local s = otiles[1].ptile.rscale
self.zoom:zoom(1/s)
self.bgzoom = { -vec2(self.zoom.ll.x, self.zoom.ll.y), vec2(1/self.zoom.size.x, 1/self.zoom.size.y)}
local c = vec2(RectAnchorOf(Screen,"centre")) * ( 1 - s )
Tile.setZoom(c,s)
local t
self:addProcess(function()
for k=1,n do
t = otiles[k]
for l,u in ipairs(t.ptile.replacements) do
self:addTile(Tile({
ptile = u[1],
position = t.position * s + c + u[2]:rotate(math.rad(t.angle)),
angle = (t.angle + u[3])%360,
scale = t.scale
}))
end
if coroutine.yield() then
break
end
end
self:recheckEdges()
setContext(self.bgd)
background(0, 0, 0, 0)
setContext()
self.isReplacing = false
-- self:resetCreators()
self.angle = self.angle + otiles[1].ptile.rangle
-- self:redrawbg()
end,true,true)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment