Region pathfinding von einem seperaten Projekt rein gepastet. Wird noch nicht funktionieren.
This commit is contained in:
parent
285c302f3d
commit
2a90bfaaad
|
@ -0,0 +1,3 @@
|
|||
source_md5="a47db4bc7df31e2470e9663216138fec"
|
||||
dest_md5="ff372a0a033369ebd292e33a30b28788"
|
||||
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Leerzeichen.bmp-0e69595e5ec48ab400945277c9828255.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://font/Leerzeichen.bmp"
|
||||
dest_files=[ "res://.import/Leerzeichen.bmp-0e69595e5ec48ab400945277c9828255.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -1,35 +1,345 @@
|
|||
extends Node2D
|
||||
|
||||
var inventory = {}
|
||||
var tiles = []
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
PlayerManager.subMenuOpen = false
|
||||
pass # Replace with function body.
|
||||
var superTiles=[]
|
||||
|
||||
func Buildings(tile, army):
|
||||
# if region.faction == army.faction or worldtile != buildings(): #RegionOwner or worldtile == leer?
|
||||
# if setPresent() == true:
|
||||
return
|
||||
|
||||
func mine(tile, army):
|
||||
if Buildings(tile, army) == true:
|
||||
if army.inventory.eschenwood() >= 30 or army.inventory.xp() >= 200: #inventory not properly defined yet, might need change
|
||||
# var minekoordinate = Player.Tile #Player.Tile = Aktuelles Feld auf dem der Spieler sein soll.
|
||||
# minekoordinate = earth.Tile #Building Sprite Tile
|
||||
var buildingtime = 5
|
||||
var finish = buildingtime + ['turn'] #finish = Gebäude fertig
|
||||
if finish == ['turn']:
|
||||
preload("res://region/MineSmall.tscn").instance()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func endTurn():
|
||||
pass
|
||||
var tileRect = Vector2(10,11)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
var boardUnits = [
|
||||
{
|
||||
"coords":Vector2(0,4),
|
||||
"faction":"playerFaction",
|
||||
"superUnit":false,
|
||||
"type":"default",
|
||||
"id":14231,
|
||||
"maxMoveAp": 10,
|
||||
"maxAp": 10,
|
||||
"moveAp": 10,
|
||||
"ap": 10,
|
||||
},
|
||||
{
|
||||
"coords":Vector2(6,4),
|
||||
"faction":"playerFaction",
|
||||
"superUnit":true,
|
||||
"type":"default",
|
||||
"id":14232,
|
||||
"maxMoveAp": 10,
|
||||
"maxAp": 10,
|
||||
"moveAp": 10,
|
||||
"ap": 10,
|
||||
},
|
||||
{
|
||||
"coords":Vector2(0,2),
|
||||
"faction":"enemyFaction",
|
||||
"superUnit":false,
|
||||
"type":"default",
|
||||
"id":14233,
|
||||
"maxMoveAp": 10,
|
||||
"maxAp": 10,
|
||||
"moveAp": 10,
|
||||
"ap": 10,
|
||||
},
|
||||
]
|
||||
|
||||
func _ready():#this mostly just builds a bunch of stuff
|
||||
buildWorld()
|
||||
|
||||
func buildWorld():
|
||||
tiles = buildTiles(tileRect.x,tileRect.y)
|
||||
superTiles = buildSuperTiles(tiles)
|
||||
|
||||
func nextRound():#this sends a nextRound signal to units on the board and refreshes their ap.
|
||||
print("next turn")
|
||||
for unit in boardUnits:
|
||||
unit.moveAp = unit.maxMoveAp
|
||||
unit.ap = unit.maxAp
|
||||
print(unit.ap)
|
||||
|
||||
func buildTiles(x,y):#this creates the tiles array and adds all the tile-dictionaries. Also sets ground-type.
|
||||
var tilesToReturn = []
|
||||
var currentX = 0
|
||||
var currentY = 0
|
||||
var roadTiles = [] #client.get_node("TileMap").roadTiles
|
||||
roadTiles.append(Vector2(2,4))
|
||||
roadTiles.append(Vector2(1,4))
|
||||
roadTiles.append(Vector2(3,4))
|
||||
roadTiles.append(Vector2(4,4))
|
||||
var mountainTiles = []
|
||||
mountainTiles.append(Vector2(2,3))
|
||||
mountainTiles.append(Vector2(1,3))
|
||||
mountainTiles.append(Vector2(3,3))
|
||||
mountainTiles.append(Vector2(4,3))
|
||||
var type = "grass"
|
||||
for i in x:
|
||||
var column = []
|
||||
currentY = 0
|
||||
for z in y:
|
||||
type = "grass"
|
||||
if roadTiles.has(Vector2(currentX,currentY)):
|
||||
type = "road"
|
||||
if mountainTiles.has(Vector2(currentX,currentY)):
|
||||
type = "mountain"
|
||||
var currentTile = {
|
||||
"coords":null,
|
||||
"vertices":[],
|
||||
"verticeExplored":false,
|
||||
"verticeDistance":[INF,INF,INF,INF,INF,INF,INF,INF],
|
||||
"type":"grass",
|
||||
"route":[]
|
||||
}
|
||||
currentTile.type = type
|
||||
currentTile.coords = Vector2(currentX,currentY)
|
||||
column.append(currentTile.duplicate())
|
||||
currentY += 1
|
||||
tilesToReturn.append(column)
|
||||
currentX += 1
|
||||
return setVertices(tilesToReturn)
|
||||
|
||||
func setVertices(templateTiles):#this finds the connection a tile has to other tiles. name is bad.
|
||||
var tileToAdapt
|
||||
var x = 0
|
||||
for row in templateTiles:
|
||||
var y = 0
|
||||
for line in row:
|
||||
tileToAdapt = templateTiles[x][y]
|
||||
# print("\n")
|
||||
# print("x:",x, " y:",y)
|
||||
if templateTiles.size() > x+1:
|
||||
if x ==0 and y == 2:
|
||||
pass
|
||||
if templateTiles[x].size() > (y+1):
|
||||
setDistance(templateTiles[x][y+1], tileToAdapt, 0, false)
|
||||
if templateTiles[x].size() > (x+1) and templateTiles[x+1].size() > (y+1):#returns null sometimes??
|
||||
setDistance(templateTiles[x+1][y+1], tileToAdapt, 1, true)
|
||||
if templateTiles.size() > (x+1):
|
||||
setDistance(templateTiles[x+1][y], tileToAdapt, 2, false)
|
||||
if templateTiles[x].size() > (x+1) and templateTiles[x+1].size() > (y-1)and y-1 >=0:
|
||||
setDistance(templateTiles[x+1][y-1], tileToAdapt, 3, true)
|
||||
if templateTiles.size() > (y-1) and y-1 >=0:
|
||||
setDistance(templateTiles[x][y-1], tileToAdapt, 4, false)
|
||||
if templateTiles[x].size() > (x-1) and templateTiles[x-1].size() > (y-1)and x-1 >=0 and y-1 >=0:
|
||||
setDistance(templateTiles[x-1][y-1], tileToAdapt, 5, true)
|
||||
if templateTiles.size() > (x-1) and x-1 >=0:
|
||||
setDistance(templateTiles[x-1][y], tileToAdapt, 6, false)
|
||||
if templateTiles[x].size() > (x-1) and templateTiles[x-1].size() > (y+1)and x-1 >=0:
|
||||
setDistance(templateTiles[x-1][y+1], tileToAdapt, 7, true)
|
||||
# print("Tiles procedurally: ",tileToAdapt)
|
||||
y+=1
|
||||
x+=1
|
||||
return templateTiles
|
||||
|
||||
func setDistance(target, origin, index, diagonal = false):#this sets the distances to the connections between tiles.
|
||||
if not diagonal:
|
||||
match target.type:
|
||||
"grass":
|
||||
origin.verticeDistance[index] = 5
|
||||
"road":
|
||||
origin.verticeDistance[index] = 2
|
||||
"mountain":
|
||||
origin.verticeDistance[index] = INF
|
||||
"enemyOccupied":
|
||||
origin.verticeDistance[index] = INF
|
||||
else:
|
||||
match target.type:
|
||||
"grass":
|
||||
origin.verticeDistance[index] = 8
|
||||
"road":
|
||||
origin.verticeDistance[index] = 3
|
||||
"mountain":
|
||||
origin.verticeDistance[index] = INF
|
||||
"enemyOccupied":
|
||||
origin.verticeDistance[index] = INF
|
||||
|
||||
func buildSuperTiles(templateTiles):
|
||||
var superTilesToReturn = []
|
||||
var x = 0
|
||||
var y = 0
|
||||
for i in range(tileRect.x-1):
|
||||
var column=[]
|
||||
for line in range(tileRect.y-1):
|
||||
var newSuperTile = {
|
||||
"coords":null,
|
||||
"vertices":[],
|
||||
"verticeExplored":false,
|
||||
"verticeDistance":[INF,INF,INF,INF,INF,INF,INF,INF],
|
||||
"type":"grass",
|
||||
"route":[],
|
||||
"underTiles":[]
|
||||
}
|
||||
newSuperTile.underTiles.append(templateTiles[x][y])
|
||||
newSuperTile.underTiles.append(templateTiles[x][y+1])
|
||||
newSuperTile.underTiles.append(templateTiles[x+1][y])
|
||||
newSuperTile.underTiles.append(templateTiles[x+1][y+1])
|
||||
newSuperTile.coords = Vector2(x,y)
|
||||
column.append(newSuperTile)
|
||||
y+=1
|
||||
superTilesToReturn.append(column)
|
||||
x+=1
|
||||
y=0
|
||||
return setSuperVertices(superTilesToReturn)
|
||||
|
||||
func setSuperVertices(templateTiles):
|
||||
var tileToAdapt
|
||||
var x = 0
|
||||
for row in templateTiles:
|
||||
var y = 0
|
||||
for line in row:
|
||||
tileToAdapt = templateTiles[x][y]
|
||||
# print("\n")
|
||||
# print("x:",x, " y:",y)
|
||||
if templateTiles.size() > x+1:
|
||||
if templateTiles[x].size() > (y+1):
|
||||
setSuperDistance(templateTiles[x][y+1], tileToAdapt, 0, false)
|
||||
if templateTiles[x].size() > (x+1) and templateTiles[x+1].size() > (y+1):
|
||||
setSuperDistance(templateTiles[x+1][y+1], tileToAdapt, 1, true)
|
||||
if templateTiles.size() > (x+1):
|
||||
setSuperDistance(templateTiles[x+1][y], tileToAdapt, 2, false)
|
||||
if templateTiles[x].size() > (x+1) and templateTiles[x+1].size() > (y-1)and y-1 >=0:
|
||||
setSuperDistance(templateTiles[x+1][y-1], tileToAdapt, 3, true)
|
||||
if templateTiles.size() > (y-1)and y-1 >=0:
|
||||
setSuperDistance(templateTiles[x][y-1], tileToAdapt, 4, false)
|
||||
if templateTiles[x].size() > (x-1) and templateTiles[x-1].size() > (y-1)and x-1 >=0 and y-1 >=0:
|
||||
setSuperDistance(templateTiles[x-1][y-1], tileToAdapt, 5, true)
|
||||
if templateTiles.size() > (x-1)and x-1 >=0:
|
||||
setSuperDistance(templateTiles[x-1][y], tileToAdapt, 6, false)
|
||||
if templateTiles[x].size() > (x-1) and templateTiles[x-1].size() > (y+1)and x-1 >=0:
|
||||
setSuperDistance(templateTiles[x-1][y+1], tileToAdapt, 7, true)
|
||||
# print("Tiles procedurally: ",tileToAdapt)
|
||||
y+=1
|
||||
x+=1
|
||||
return templateTiles
|
||||
|
||||
func setSuperDistance(target,origin,index,diagonal = false):
|
||||
var totalDistance = 0
|
||||
for tile in target.underTiles:
|
||||
if not diagonal:
|
||||
match tile.type:
|
||||
"grass":
|
||||
totalDistance += 5
|
||||
"road":
|
||||
totalDistance += 2
|
||||
"mountain":
|
||||
totalDistance += INF
|
||||
"enemyOccupied":
|
||||
totalDistance += INF
|
||||
else:
|
||||
match tile.type:
|
||||
"grass":
|
||||
totalDistance += 8
|
||||
"road":
|
||||
totalDistance += 3
|
||||
"mountain":
|
||||
totalDistance += INF
|
||||
"enemyOccupied":
|
||||
totalDistance += INF
|
||||
origin.verticeDistance[index] = totalDistance/target.underTiles.size()
|
||||
|
||||
func moveUnit(path,unitID):
|
||||
var apCost = 0
|
||||
var unit = getUnitById(unitID)
|
||||
var occupiedTiles=getOccupiedTiles(unit)[0]
|
||||
var enemyOccupiedTiles=getOccupiedTiles(unit)[1]
|
||||
var tiles = addEnemyOccupiedTilesToMap(enemyOccupiedTiles)
|
||||
# lie check
|
||||
if occupiedTiles.has(path[-1]):
|
||||
return false
|
||||
if unit.superUnit == true:
|
||||
if occupiedTiles.has(path[-1]+Vector2(0,0)) or occupiedTiles.has(path[-1]+Vector2(1,0)) or occupiedTiles.has(path[-1]+Vector2(0,1)) or occupiedTiles.has(path[-1]+Vector2(1,1)):
|
||||
return false
|
||||
# overlap check
|
||||
if path[0] != unit.coords:
|
||||
return false
|
||||
for i in range(path.size()-1):
|
||||
var coordDirection = Vector2((path[i+1].x - path[i].x) , (path[i+1].y-path[i].y))
|
||||
# movement check
|
||||
if abs(path[i].x - path[i+1].x)>1 and abs(path[i].y - path[i+1].y)>1:
|
||||
return false
|
||||
# distance check
|
||||
var currTile = tiles[path[i].x][path[i].y]
|
||||
var nextTile = tiles[path[i+1].x][path[i+1].y]
|
||||
var directionIndex
|
||||
if coordDirection == Vector2(0,1):
|
||||
directionIndex = 0
|
||||
if coordDirection == Vector2(1,1):
|
||||
directionIndex = 1
|
||||
if coordDirection == Vector2(1,0):
|
||||
directionIndex = 2
|
||||
if coordDirection == Vector2(1,-1):
|
||||
directionIndex = 3
|
||||
if coordDirection == Vector2(0,-1):
|
||||
directionIndex = 4
|
||||
if coordDirection == Vector2(-1,-1):
|
||||
directionIndex = 5
|
||||
if coordDirection == Vector2(-1,0):
|
||||
directionIndex = 6
|
||||
if coordDirection == Vector2(-1,1):
|
||||
directionIndex = 7
|
||||
apCost += currTile.verticeDistance[directionIndex]
|
||||
# collision check
|
||||
if unit.superUnit == true:
|
||||
if enemyOccupiedTiles.has(path[i+1]+Vector2(0,0)) or enemyOccupiedTiles.has(path[i+1]+Vector2(1,0)) or enemyOccupiedTiles.has(path[i+1]+Vector2(0,1)) or enemyOccupiedTiles.has(path[i+1]+Vector2(1,1)):
|
||||
return false
|
||||
else:
|
||||
if enemyOccupiedTiles.has(path[i+1]):
|
||||
return false
|
||||
if apCost > unit.moveAp+unit.ap:
|
||||
return false
|
||||
if unit.moveAp < apCost:
|
||||
unit.ap -= (apCost-unit.moveAp)
|
||||
unit.moveAp = 0
|
||||
else:
|
||||
unit.moveAp -= apCost
|
||||
unit.coords = path[-1]
|
||||
for boardUnit in boardUnits:
|
||||
if boardUnit.id == unit.id:
|
||||
boardUnit.coords = unit.coords
|
||||
print(path," NEXT ",unit.coords)
|
||||
return [path, apCost]
|
||||
# return validated path and ap and then execute it
|
||||
|
||||
func getUnitById(unitId):
|
||||
for unit in boardUnits:
|
||||
if unit.id == unitId:
|
||||
return unit
|
||||
return null
|
||||
|
||||
func getOccupiedTiles(forUnit):#looks into boardUnits to find their position and adds each of them to the occupiedTiles array.
|
||||
var selectedFaction
|
||||
if forUnit == null:
|
||||
selectedFaction = "playerFaction"
|
||||
else:
|
||||
selectedFaction = forUnit.faction
|
||||
var occupiedTiles = []
|
||||
var enemyOccupiedTiles = []
|
||||
for unit in boardUnits:
|
||||
if unit != forUnit:
|
||||
if !unit.superUnit:
|
||||
occupiedTiles.append(unit.coords)
|
||||
else:
|
||||
occupiedTiles.append(Vector2(unit.coords.x, unit.coords.y))
|
||||
occupiedTiles.append(Vector2(unit.coords.x, unit.coords.y+1))
|
||||
occupiedTiles.append(Vector2(unit.coords.x+1, unit.coords.y))
|
||||
occupiedTiles.append(Vector2(unit.coords.x+1, unit.coords.y+1))
|
||||
if PlayerManager.checkdiplo(selectedFaction, unit.faction) == "enemies":
|
||||
if !unit.superUnit:
|
||||
enemyOccupiedTiles.append(unit.coords)
|
||||
else:
|
||||
enemyOccupiedTiles.append(Vector2(unit.coords.x, unit.coords.y))
|
||||
enemyOccupiedTiles.append(Vector2(unit.coords.x, unit.coords.y+1))
|
||||
enemyOccupiedTiles.append(Vector2(unit.coords.x+1, unit.coords.y))
|
||||
enemyOccupiedTiles.append(Vector2(unit.coords.x+1, unit.coords.y+1))
|
||||
return [occupiedTiles,enemyOccupiedTiles]
|
||||
|
||||
func addEnemyOccupiedTilesToMap(enemyOccupiedTiles):#this creates the tiles array and adds all the tile-dictionaries. Also sets ground-type.
|
||||
var mapTiles = tiles.duplicate(true)
|
||||
var currentX = 0
|
||||
for tile in enemyOccupiedTiles:
|
||||
mapTiles[tile.x][tile.y].type = "enemyOccupied"
|
||||
return mapTiles
|
||||
|
||||
func getTiles(unit):
|
||||
if unit == null or !unit.superUnit:
|
||||
return setVertices(addEnemyOccupiedTilesToMap(getOccupiedTiles(unit)[1]))
|
||||
else:
|
||||
return buildSuperTiles(setVertices(addEnemyOccupiedTilesToMap(getOccupiedTiles(unit)[1])))
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
[gd_scene load_steps=16 format=2]
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://region/Region.gd" type="Script" id=1]
|
||||
[ext_resource path="res://images/region/regiontiles.png" type="Texture" id=2]
|
||||
[ext_resource path="res://region/regionGround.gd" type="Script" id=3]
|
||||
[ext_resource path="res://army/Stack2x1.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://region/ressourcenodes/Mountain.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://region/building/Building.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Camera2D.gd" type="Script" id=7]
|
||||
[ext_resource path="res://region/RegionUI.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://menues/smallbtn.tscn" type="PackedScene" id=9]
|
||||
|
@ -13,112 +8,10 @@
|
|||
[ext_resource path="res://menues/toggleResearch.gd" type="Script" id=11]
|
||||
[ext_resource path="res://menues/research.tscn" type="PackedScene" id=12]
|
||||
[ext_resource path="res://items/Item.tscn" type="PackedScene" id=13]
|
||||
[ext_resource path="res://region/MineSmall.tscn" type="PackedScene" id=14]
|
||||
|
||||
[sub_resource type="TileSet" id=1]
|
||||
0/name = "regiontiles.png 0"
|
||||
0/texture = ExtResource( 2 )
|
||||
0/tex_offset = Vector2( 0, 0 )
|
||||
0/modulate = Color( 1, 1, 1, 1 )
|
||||
0/region = Rect2( 128, 0, 128, 128 )
|
||||
0/tile_mode = 0
|
||||
0/occluder_offset = Vector2( 0, 0 )
|
||||
0/navigation_offset = Vector2( 0, 0 )
|
||||
0/shape_offset = Vector2( 0, 0 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
0/shape_one_way = false
|
||||
0/shape_one_way_margin = 0.0
|
||||
0/shapes = [ ]
|
||||
0/z_index = 0
|
||||
1/name = "regiontiles.png 1"
|
||||
1/texture = ExtResource( 2 )
|
||||
1/tex_offset = Vector2( 0, 0 )
|
||||
1/modulate = Color( 1, 1, 1, 1 )
|
||||
1/region = Rect2( 480, 0, 128, 128 )
|
||||
1/tile_mode = 0
|
||||
1/occluder_offset = Vector2( 0, 0 )
|
||||
1/navigation_offset = Vector2( 0, 0 )
|
||||
1/shape_offset = Vector2( 0, 0 )
|
||||
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
1/shape_one_way = false
|
||||
1/shape_one_way_margin = 0.0
|
||||
1/shapes = [ ]
|
||||
1/z_index = 0
|
||||
2/name = "regiontiles.png 2"
|
||||
2/texture = ExtResource( 2 )
|
||||
2/tex_offset = Vector2( 0, 0 )
|
||||
2/modulate = Color( 1, 1, 1, 1 )
|
||||
2/region = Rect2( 224, 384, 128, 128 )
|
||||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 0, 0 )
|
||||
2/navigation_offset = Vector2( 0, 0 )
|
||||
2/shape_offset = Vector2( 0, 0 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
2/shape_one_way = false
|
||||
2/shape_one_way_margin = 0.0
|
||||
2/shapes = [ ]
|
||||
2/z_index = 0
|
||||
3/name = "regiontiles.png 3"
|
||||
3/texture = ExtResource( 2 )
|
||||
3/tex_offset = Vector2( 0, 0 )
|
||||
3/modulate = Color( 1, 1, 1, 1 )
|
||||
3/region = Rect2( 0, 128, 128, 128 )
|
||||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 0.0
|
||||
3/shapes = [ ]
|
||||
3/z_index = 0
|
||||
4/name = "regiontiles.png 4"
|
||||
4/texture = ExtResource( 2 )
|
||||
4/tex_offset = Vector2( 0, 0 )
|
||||
4/modulate = Color( 1, 1, 1, 1 )
|
||||
4/region = Rect2( 128, 128, 128, 128 )
|
||||
4/tile_mode = 0
|
||||
4/occluder_offset = Vector2( 0, 0 )
|
||||
4/navigation_offset = Vector2( 0, 0 )
|
||||
4/shape_offset = Vector2( 0, 0 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
4/shape_one_way = false
|
||||
4/shape_one_way_margin = 0.0
|
||||
4/shapes = [ ]
|
||||
4/z_index = 0
|
||||
|
||||
[node name="Region" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="ground" type="TileMap" parent="."]
|
||||
tile_set = SubResource( 1 )
|
||||
cell_size = Vector2( 128, 128 )
|
||||
format = 1
|
||||
tile_data = PoolIntArray( -65537, 1, 0, -131072, 1, 0, -131071, 1, 0, -131070, 1, 0, -131069, 1, 0, -131068, 1, 0, -131067, 1, 0, -131066, 1, 0, -131065, 1, 0, -131064, 1, 0, -131063, 1, 0, -131062, 1, 0, -131061, 1, 0, -131060, 1, 0, -131059, 1, 0, -131058, 1, 0, -1, 1, 0, -65536, 1, 0, -65535, 1, 0, -65534, 1, 0, -65533, 1, 0, -65532, 1, 0, -65531, 1, 0, -65530, 1, 0, -65529, 1, 0, -65528, 1, 0, -65527, 1, 0, -65526, 1, 0, -65525, 1, 0, -65524, 1, 0, -65523, 1, 0, -65522, 1, 0, -65521, 1, 0, -65520, 1, 0, 65535, 1, 0, 0, 0, 0, 1, 0, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 5, 2, 0, 6, 2, 0, 7, 2, 0, 8, 1, 0, 9, 1, 0, 10, 1, 0, 11, 1, 0, 12, 1, 0, 13, 1, 0, 14, 1, 0, 15, 1, 0, 16, 1, 0, 131071, 1, 0, 65536, 0, 0, 65537, 0, 0, 65538, 2, 0, 65539, 2, 0, 65540, 2, 0, 65541, 2, 0, 65542, 2, 0, 65543, 2, 0, 65544, 1, 0, 65545, 1, 0, 65546, 1, 0, 65547, 1, 0, 65548, 1, 0, 65549, 1, 0, 65550, 1, 0, 65551, 1, 0, 65552, 1, 0, 196607, 1, 0, 131072, 0, 0, 131073, 0, 0, 131074, 2, 0, 131075, 4, 0, 131076, 4, 0, 131077, 0, 0, 131078, 2, 0, 131079, 2, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 0, 131083, 1, 0, 131084, 1, 0, 131085, 1, 0, 131086, 1, 0, 131087, 1, 0, 131088, 1, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131092, 1, 0, 131093, 1, 0, 131094, 1, 0, 262143, 1, 0, 196608, 4, 0, 196609, 4, 0, 196610, 4, 0, 196611, 4, 0, 196612, 4, 0, 196613, 0, 0, 196614, 2, 0, 196615, 2, 0, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 0, 196620, 1, 0, 196621, 1, 0, 196622, 1, 0, 196623, 1, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 196629, 1, 0, 196630, 1, 0, 327678, 1, 0, 327679, 1, 0, 262144, 0, 0, 262145, 0, 0, 262146, 3, 0, 262147, 3, 0, 262148, 3, 0, 262149, 0, 0, 262150, 1, 0, 262151, 1, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 1, 0, 262159, 1, 0, 393214, 1, 0, 393215, 1, 0, 327680, 1, 0, 327681, 1, 0, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 1, 0, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 0, 327690, 1, 0, 327692, 1, 0, 327693, 1, 0, 327694, 1, 0, 327695, 1, 0, 458750, 1, 0, 458751, 1, 0, 393216, 1, 0, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 1, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 524287, 1, 0, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 458767, 1, 0, 589823, 1, 0, 524288, 1, 0, 524289, 1, 0, 524290, 1, 0, 524291, 1, 0, 524292, 1, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 0, 524303, 1, 0, 655359, 1, 0, 589824, 1, 0, 589825, 1, 0, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 1, 0, 589835, 1, 0, 655367, 1, 0 )
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[node name="units" type="Node" parent="ground"]
|
||||
|
||||
[node name="Stack" parent="ground/units" instance=ExtResource( 4 )]
|
||||
position = Vector2( 128, 256 )
|
||||
|
||||
[node name="ressources" type="Node" parent="ground"]
|
||||
|
||||
[node name="Mountain" parent="ground/ressources" instance=ExtResource( 5 )]
|
||||
position = Vector2( 256, 768 )
|
||||
|
||||
[node name="buildings" type="Node" parent="ground"]
|
||||
|
||||
[node name="Node2D" parent="ground/buildings" instance=ExtResource( 6 )]
|
||||
position = Vector2( 730, 700 )
|
||||
|
||||
[node name="mine" type="Node2D" parent="ground/buildings"]
|
||||
position = Vector2( 574, 569 )
|
||||
|
||||
[node name="MineSmall" parent="ground/buildings/mine" instance=ExtResource( 14 )]
|
||||
position = Vector2( 1, 0 )
|
||||
scale = Vector2( 0.427155, 0.427155 )
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
current = true
|
||||
drag_margin_left = 0.0
|
||||
|
|
Loading…
Reference in New Issue