mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
Made tilemap navigation use multiple layers
This commit is contained in:
parent
fa49fe2ce9
commit
25670dc243
7 changed files with 32 additions and 22 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=16 format=4 uid="uid://prgabjxh44lf"]
|
||||
[gd_scene load_steps=17 format=4 uid="uid://prgabjxh44lf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_4uv21"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_xfbh8"]
|
||||
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_cko4a"]
|
||||
[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_bc0u7"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_em3f4"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="5_75e1c"]
|
||||
|
|
@ -17,7 +18,7 @@
|
|||
[sub_resource type="Resource" id="Resource_6wo78"]
|
||||
script = ExtResource("4_bc0u7")
|
||||
EggIndex = 0
|
||||
StartingEquipment = []
|
||||
StartingEquipment = Array[ExtResource("3_cko4a")]([])
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_5xgmc"]
|
||||
|
||||
|
|
@ -33,11 +34,11 @@ MapStartData = SubResource("Resource_6wo78")
|
|||
[node name="Tilemaps" type="Node2D" parent="."]
|
||||
process_mode = 1
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayer")]
|
||||
[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers")]
|
||||
tile_map_data = PackedByteArray("AAAEABAAAAAEAAIAAAAEABEAAAAEAAIAAAAEABIAAAAEAAIAAAAEABMAAAAEAAIAAAAEABQAAAAEAAIAAAAEABUAAAAEAAIAAAAEABYAAAAEAAIAAAAFABAAAAAEAAIAAAAFABEAAAAEAAIAAAAFABIAAAAEAAIAAAAFABMAAAAEAAIAAAAFABQAAAAEAAIAAAAFABUAAAAEAAIAAAAFABYAAAAEAAIAAAAGABAAAAAEAAIAAAAGABEAAAAEAAIAAAAGABIAAAAEAAIAAAAGABMAAAAEAAIAAAAGABQAAAAEAAIAAAAGABUAAAAEAAIAAAAGABYAAAAEAAIAAAAHABAAAAAEAAIAAAAHABEAAAAEAAIAAAAHABIAAAAEAAIAAAAHABMAAAAEAAIAAAAHABQAAAAEAAIAAAAHABUAAAAEAAIAAAAHABYAAAAEAAIAAAAIABAAAAAEAAIAAAAIABEAAAAEAAIAAAAIABIAAAAEAAIAAAAIABMAAAAEAAIAAAAIABQAAAAEAAIAAAAIABUAAAAEAAIAAAAIABYAAAAEAAIAAAAJABAAAAAEAAIAAAAJABEAAAAEAAIAAAAJABIAAAAEAAIAAAAJABMAAAAEAAIAAAAJABQAAAAEAAIAAAAJABUAAAAEAAIAAAAJABYAAAAEAAIAAAAKABAAAAAEAAIAAAAKABEAAAAEAAIAAAAKABIAAAAEAAIAAAAKABMAAAAEAAIAAAAKABQAAAAEAAIAAAAKABUAAAAEAAIAAAAKABYAAAAEAAIAAAADABAAAAAEAAIAAAADABEAAAAEAAIAAAADABIAAAAEAAIAAAADABMAAAAEAAIAAAADABQAAAAEAAIAAAADABUAAAAEAAIAAAADABYAAAAEAAIAAAADABcAAAAEAAIAAAADABgAAAAEAAIAAAAEABcAAAAEAAIAAAAEABgAAAAEAAIAAAAFABcAAAAEAAIAAAAFABgAAAAEAAIAAAAGABcAAAAEAAIAAAAGABgAAAAEAAIAAAAHABcAAAAEAAIAAAAHABgAAAAEAAIAAAAIABcAAAAEAAIAAAAIABgAAAAEAAIAAAAJABcAAAAEAAIAAAAJABgAAAAEAAIAAAAKABcAAAAEAAIAAAAKABgAAAAEAAIAAAALABAAAAAEAAIAAAALABEAAAAEAAIAAAALABIAAAAEAAIAAAALABMAAAAEAAIAAAALABQAAAAEAAIAAAALABUAAAAEAAIAAAALABYAAAAEAAIAAAALABcAAAAEAAIAAAALABgAAAAEAAIAAAA=")
|
||||
tile_set = ExtResource("4_em3f4")
|
||||
script = ExtResource("5_75e1c")
|
||||
_solidLayer = NodePath("../Solid")
|
||||
_solidLayers = [NodePath("../Solid"), NodePath("../Props")]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
|
||||
|
|
@ -70,6 +71,7 @@ animation = &"down"
|
|||
process_mode = 1
|
||||
script = ExtResource("11_uct4d")
|
||||
pixel_snap = false
|
||||
enable_smoothing = false
|
||||
|
||||
[node name="ReferenceRect" type="ReferenceRect" parent="."]
|
||||
visible = false
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,19 +1,21 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Godot.Collections;
|
||||
|
||||
public partial class TilemapAvoidance : TileMapLayer
|
||||
{
|
||||
|
||||
[Export] private TileMapLayer _solidLayer;
|
||||
[Export] private Array<TileMapLayer> _solidLayers;
|
||||
|
||||
public override bool _UseTileDataRuntimeUpdate(Vector2I coords)
|
||||
{
|
||||
if (_solidLayer.GetUsedCellsById(0).Contains(coords))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// if (_solidLayer.GetUsedCellsById(0).Contains(coords))
|
||||
// {
|
||||
// return true;
|
||||
// }
|
||||
|
||||
return false;
|
||||
return _solidLayers.Aggregate(false, (current, layer) => current | layer.GetUsedCellsById(0).Contains(coords));
|
||||
}
|
||||
|
||||
public override void _TileDataRuntimeUpdate(Vector2I coords, TileData tileData)
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
|||
outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)])
|
||||
agent_radius = 0.0
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_ml1qs"]
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_ipvrl"]
|
||||
vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8)
|
||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)])
|
||||
|
|
@ -217,7 +217,7 @@ texture = ExtResource("1_70kxh")
|
|||
0:3/0 = 0
|
||||
0:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_lnwgu")
|
||||
1:3/0 = 0
|
||||
1:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ml1qs")
|
||||
1:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ipvrl")
|
||||
2:3/0 = 0
|
||||
2:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_h4p0b")
|
||||
3:3/0 = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue