WIP: HexTile3D coloring based on TileWorld Colormap.
parent
983bb792fa
commit
4c92a6c5c3
Binary file not shown.
After Width: | Height: | Size: 561 B |
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path.s3tc="res://.import/4x4checker.png-2d12b07d9dea94e0b7f78a32f72bdad7.s3tc.stex"
|
||||||
|
path.etc2="res://.import/4x4checker.png-2d12b07d9dea94e0b7f78a32f72bdad7.etc2.stex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": [ "s3tc", "etc2" ],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/4x4checker.png"
|
||||||
|
dest_files=[ "res://.import/4x4checker.png-2d12b07d9dea94e0b7f78a32f72bdad7.s3tc.stex", "res://.import/4x4checker.png-2d12b07d9dea94e0b7f78a32f72bdad7.etc2.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=true
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=true
|
||||||
|
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=false
|
||||||
|
svg/scale=1.0
|
Binary file not shown.
After Width: | Height: | Size: 585 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/4x4checkerColor.png-aa2feda4a05a30bbb021b287c7398aac.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/4x4checkerColor.png"
|
||||||
|
dest_files=[ "res://.import/4x4checkerColor.png-aa2feda4a05a30bbb021b287c7398aac.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=2
|
||||||
|
flags/repeat=true
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=true
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=1
|
||||||
|
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=false
|
||||||
|
svg/scale=0.001
|
|
@ -0,0 +1,62 @@
|
||||||
|
shader_type spatial;
|
||||||
|
render_mode specular_schlick_ggx, async_visible;
|
||||||
|
|
||||||
|
uniform sampler2D MapAlbedoTexture : hint_black_albedo;
|
||||||
|
uniform mat4 HexAffineInverse;
|
||||||
|
varying vec2 map_coord;
|
||||||
|
|
||||||
|
const mat2 _HexAffineInverse = mat2(vec2(1.333333, -0.6666667), vec2(0, -1.154701));
|
||||||
|
|
||||||
|
vec2 axial_to_offset(vec2 axial) {
|
||||||
|
ivec2 axial_i = ivec2(axial);
|
||||||
|
int x = axial_i.x;
|
||||||
|
int y = axial_i.y;
|
||||||
|
int off_y = y + (x - (x % 1)) / 2;
|
||||||
|
return vec2(float(x), float(off_y));
|
||||||
|
}
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
// Input:2
|
||||||
|
mat4 model_matrix = WORLD_MATRIX;
|
||||||
|
|
||||||
|
vec3 origin = vec4(WORLD_MATRIX * vec4(0, 0, 0, 1)).xyz;
|
||||||
|
|
||||||
|
vec3 axial_coords = vec3(_HexAffineInverse * origin.xz, 0);
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
map_coord = origin.xz * 0.25;
|
||||||
|
map_coord = axial_to_offset(axial_coords.xy) * 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Input:3
|
||||||
|
mat4 n_out3p0 = WORLD_MATRIX;
|
||||||
|
|
||||||
|
// TransformDecompose:5
|
||||||
|
vec3 n_out5p0 = n_out3p0[0].xyz;
|
||||||
|
vec3 n_out5p1 = n_out3p0[1].xyz;
|
||||||
|
vec3 n_out5p2 = n_out3p0[2].xyz;
|
||||||
|
vec3 n_out5p3 = n_out3p0[3].xyz;
|
||||||
|
|
||||||
|
// VectorOp:9
|
||||||
|
vec3 n_in9p1 = vec3(1.00000, 1.00000, 1.00000);
|
||||||
|
vec3 n_out9p0 = n_out5p3 * n_in9p1;
|
||||||
|
|
||||||
|
// TextureUniform:4
|
||||||
|
vec3 n_out4p0;
|
||||||
|
float n_out4p1;
|
||||||
|
{
|
||||||
|
vec4 n_tex_read = texture(MapAlbedoTexture, map_coord);
|
||||||
|
n_out4p0 = n_tex_read.rgb;
|
||||||
|
n_out4p1 = n_tex_read.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = n_out4p0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void light() {
|
||||||
|
// Output:0
|
||||||
|
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ public class Game : Spatial
|
||||||
private Label _numCoordsAddedLabel;
|
private Label _numCoordsAddedLabel;
|
||||||
private Label _numCoordsRemovedLabel;
|
private Label _numCoordsRemovedLabel;
|
||||||
private TextureRect _worldTextureRect;
|
private TextureRect _worldTextureRect;
|
||||||
|
private Button _generateWorldButton;
|
||||||
|
|
||||||
// scene nodes
|
// scene nodes
|
||||||
private Spatial _tileHighlight;
|
private Spatial _tileHighlight;
|
||||||
|
@ -49,7 +50,8 @@ public class Game : Spatial
|
||||||
_mouseTileLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/mouse_tile_label");
|
_mouseTileLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/mouse_tile_label");
|
||||||
_numCoordsAddedLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/num_coords_added_label");
|
_numCoordsAddedLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/num_coords_added_label");
|
||||||
_numCoordsRemovedLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/num_coords_removed_label");
|
_numCoordsRemovedLabel = GetNode<Label>("Control/HBoxContainer/GridContainer/num_coords_removed_label");
|
||||||
_worldTextureRect = GetNode<TextureRect>("Control/WorldTextureRect");
|
_worldTextureRect = (TextureRect)FindNode("WorldTextureRect");
|
||||||
|
_generateWorldButton = (Button)FindNode("WorldGenerateButton");
|
||||||
|
|
||||||
// scene nodes
|
// scene nodes
|
||||||
_tileHighlight = GetNode<Spatial>("TileHighlight");
|
_tileHighlight = GetNode<Spatial>("TileHighlight");
|
||||||
|
@ -81,6 +83,7 @@ public class Game : Spatial
|
||||||
_streamContainerArea.Connect("input_event", this, nameof(OnAreaInputEvent));
|
_streamContainerArea.Connect("input_event", this, nameof(OnAreaInputEvent));
|
||||||
_streamContainer.Connect("TileClicked", this, nameof(OnTileClicked));
|
_streamContainer.Connect("TileClicked", this, nameof(OnTileClicked));
|
||||||
_tileWorld.Connect("WorldGenerated", this, nameof(OnWorldGenerated));
|
_tileWorld.Connect("WorldGenerated", this, nameof(OnWorldGenerated));
|
||||||
|
_generateWorldButton.Connect("pressed", this, nameof(OnGenerateButton));
|
||||||
|
|
||||||
// register entity events
|
// register entity events
|
||||||
Array entityNodes = FindNode("Entities").GetChildren();
|
Array entityNodes = FindNode("Entities").GetChildren();
|
||||||
|
@ -166,6 +169,15 @@ public class Game : Spatial
|
||||||
_camera.Transform = cameraTransform;
|
_camera.Transform = cameraTransform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void OnGenerateButton()
|
||||||
|
{
|
||||||
|
GD.Print("Generating");
|
||||||
|
_tileWorld.Seed = _tileWorld.Seed + 1;
|
||||||
|
_tileWorld.Generate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void OnAreaInputEvent(Node camera, InputEvent inputEvent, Vector3 position, Vector3 normal,
|
public void OnAreaInputEvent(Node camera, InputEvent inputEvent, Vector3 position, Vector3 normal,
|
||||||
int shapeIndex)
|
int shapeIndex)
|
||||||
{
|
{
|
||||||
|
@ -175,6 +187,7 @@ public class Game : Spatial
|
||||||
cellPlaneCoords = _hexGrid.GetHexCenterFromOffset(cellAtCursor.OffsetCoords);
|
cellPlaneCoords = _hexGrid.GetHexCenterFromOffset(cellAtCursor.OffsetCoords);
|
||||||
highlightTransform.origin.x = cellPlaneCoords.x;
|
highlightTransform.origin.x = cellPlaneCoords.x;
|
||||||
highlightTransform.origin.z = cellPlaneCoords.y;
|
highlightTransform.origin.z = cellPlaneCoords.y;
|
||||||
|
highlightTransform.origin.y = 0.1f;
|
||||||
|
|
||||||
_mouseWorldLabel.Text = position.ToString();
|
_mouseWorldLabel.Text = position.ToString();
|
||||||
_mouseTileLabel.Text = cellAtCursor.OffsetCoords.ToString();
|
_mouseTileLabel.Text = cellAtCursor.OffsetCoords.ToString();
|
||||||
|
@ -231,9 +244,9 @@ public class Game : Spatial
|
||||||
GD.Print("Using new map");
|
GD.Print("Using new map");
|
||||||
ImageTexture new_world_texture = new ImageTexture();
|
ImageTexture new_world_texture = new ImageTexture();
|
||||||
|
|
||||||
_tileWorld.Heightmap.Unlock();
|
_tileWorld.Colormap.Unlock();
|
||||||
new_world_texture.CreateFromImage(_tileWorld.Heightmap);
|
new_world_texture.CreateFromImage(_tileWorld.Colormap);
|
||||||
_tileWorld.Heightmap.Lock();
|
_tileWorld.Colormap.Lock();
|
||||||
|
|
||||||
_worldTextureRect.Texture = new_world_texture;
|
_worldTextureRect.Texture = new_world_texture;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=24 format=2]
|
[gd_scene load_steps=22 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scenes/StreamContainer.cs" type="Script" id=1]
|
[ext_resource path="res://scenes/StreamContainer.cs" type="Script" id=1]
|
||||||
[ext_resource path="res://components/NavigationComponent.cs" type="Script" id=2]
|
[ext_resource path="res://components/NavigationComponent.cs" type="Script" id=2]
|
||||||
|
@ -7,19 +7,11 @@
|
||||||
[ext_resource path="res://utils/TileHighlight.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://utils/TileHighlight.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://components/WorldInfoComponent.cs" type="Script" id=6]
|
[ext_resource path="res://components/WorldInfoComponent.cs" type="Script" id=6]
|
||||||
[ext_resource path="res://entities/Chest.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://entities/Chest.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://scenes/TileWorld.cs" type="Script" id=8]
|
[ext_resource path="res://scenes/TileWorld.tscn" type="PackedScene" id=8]
|
||||||
[ext_resource path="res://scenes/Game.cs" type="Script" id=9]
|
[ext_resource path="res://scenes/Game.cs" type="Script" id=9]
|
||||||
[ext_resource path="res://scenes/DebugCamera.gd" type="Script" id=10]
|
[ext_resource path="res://scenes/DebugCamera.gd" type="Script" id=10]
|
||||||
[ext_resource path="res://assets/CreatusPiratePack/Models/Characters/gltf/Pirate1final.glb" type="PackedScene" id=11]
|
[ext_resource path="res://assets/CreatusPiratePack/Models/Characters/gltf/Pirate1final.glb" type="PackedScene" id=11]
|
||||||
|
|
||||||
[sub_resource type="OpenSimplexNoise" id=10]
|
|
||||||
period = 39.6
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture" id=11]
|
|
||||||
width = 100
|
|
||||||
height = 100
|
|
||||||
noise = SubResource( 10 )
|
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=1]
|
[sub_resource type="CubeMesh" id=1]
|
||||||
size = Vector3( 1, 1, 1 )
|
size = Vector3( 1, 1, 1 )
|
||||||
|
|
||||||
|
@ -57,17 +49,13 @@ radius = 0.1
|
||||||
script = ExtResource( 9 )
|
script = ExtResource( 9 )
|
||||||
|
|
||||||
[node name="TileHighlight" parent="." instance=ExtResource( 5 )]
|
[node name="TileHighlight" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0 )
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="MouseTileHighlight" parent="." instance=ExtResource( 5 )]
|
[node name="MouseTileHighlight" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0 )
|
||||||
|
|
||||||
[node name="TileWorld" type="Spatial" parent="."]
|
[node name="TileWorld" parent="." instance=ExtResource( 8 )]
|
||||||
script = ExtResource( 8 )
|
|
||||||
|
|
||||||
[node name="DirectionalLight" type="DirectionalLight" parent="TileWorld"]
|
|
||||||
transform = Transform( 0.328059, -0.878387, 0.347583, 0, 0.367946, 0.929847, -0.944657, -0.305045, 0.120708, 0, 6.59293, 1.20265 )
|
|
||||||
shadow_enabled = true
|
|
||||||
directional_shadow_mode = 0
|
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="."]
|
[node name="Control" type="Control" parent="."]
|
||||||
margin_right = 40.0
|
margin_right = 40.0
|
||||||
|
@ -75,13 +63,32 @@ margin_bottom = 40.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="Control"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="Control"]
|
||||||
margin_right = 40.0
|
margin_right = 127.0
|
||||||
margin_bottom = 40.0
|
margin_bottom = 158.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
alignment = 2
|
alignment = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="Control/HBoxContainer"]
|
||||||
|
margin_right = 100.0
|
||||||
|
margin_bottom = 158.0
|
||||||
|
alignment = 2
|
||||||
|
|
||||||
|
[node name="WorldTextureRect" type="TextureRect" parent="Control/HBoxContainer/VBoxContainer"]
|
||||||
|
margin_top = 34.0
|
||||||
|
margin_right = 100.0
|
||||||
|
margin_bottom = 134.0
|
||||||
|
rect_min_size = Vector2( 100, 100 )
|
||||||
|
stretch_mode = 1
|
||||||
|
|
||||||
|
[node name="WorldGenerateButton" type="Button" parent="Control/HBoxContainer/VBoxContainer"]
|
||||||
|
margin_top = 138.0
|
||||||
|
margin_right = 100.0
|
||||||
|
margin_bottom = 158.0
|
||||||
|
text = "Generate"
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="Control/HBoxContainer"]
|
[node name="GridContainer" type="GridContainer" parent="Control/HBoxContainer"]
|
||||||
margin_right = 127.0
|
margin_left = 104.0
|
||||||
|
margin_right = 231.0
|
||||||
margin_bottom = 158.0
|
margin_bottom = 158.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
columns = 2
|
columns = 2
|
||||||
|
@ -205,13 +212,6 @@ margin_right = 127.0
|
||||||
margin_bottom = 158.0
|
margin_bottom = 158.0
|
||||||
text = "0"
|
text = "0"
|
||||||
|
|
||||||
[node name="WorldTextureRect" type="TextureRect" parent="Control"]
|
|
||||||
margin_left = 1.0
|
|
||||||
margin_top = 300.0
|
|
||||||
margin_right = 513.0
|
|
||||||
margin_bottom = 812.0
|
|
||||||
texture = SubResource( 11 )
|
|
||||||
|
|
||||||
[node name="StreamContainer" type="Spatial" parent="."]
|
[node name="StreamContainer" type="Spatial" parent="."]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
Dimensions = Vector2( 18, 17 )
|
Dimensions = Vector2( 18, 17 )
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System.Diagnostics;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
public class HexTile3D : Spatial
|
public class HexTile3D : Spatial
|
||||||
|
@ -31,6 +32,7 @@ public class HexTile3D : Spatial
|
||||||
|
|
||||||
public HexCell Cell = new HexCell();
|
public HexCell Cell = new HexCell();
|
||||||
public bool IsMouseOver = false;
|
public bool IsMouseOver = false;
|
||||||
|
public MeshInstance Mesh;
|
||||||
|
|
||||||
public Vector2 OffsetCoords
|
public Vector2 OffsetCoords
|
||||||
{
|
{
|
||||||
|
@ -57,24 +59,24 @@ public class HexTile3D : Spatial
|
||||||
{
|
{
|
||||||
_type = value;
|
_type = value;
|
||||||
|
|
||||||
switch (_type)
|
// switch (_type)
|
||||||
{
|
// {
|
||||||
case TileType.Undefined:
|
// case TileType.Undefined:
|
||||||
_mesh.SetSurfaceMaterial(0, _undefinedMaterial);
|
// _mesh.SetSurfaceMaterial(0, _undefinedMaterial);
|
||||||
break;
|
// break;
|
||||||
case TileType.Sand:
|
// case TileType.Sand:
|
||||||
_mesh.SetSurfaceMaterial(0, _sandMaterial);
|
// _mesh.SetSurfaceMaterial(0, _sandMaterial);
|
||||||
break;
|
// break;
|
||||||
case TileType.Grass:
|
// case TileType.Grass:
|
||||||
_mesh.SetSurfaceMaterial(0, _grassMaterial);
|
// _mesh.SetSurfaceMaterial(0, _grassMaterial);
|
||||||
break;
|
// break;
|
||||||
case TileType.DeepGrass:
|
// case TileType.DeepGrass:
|
||||||
_mesh.SetSurfaceMaterial(0, _deepGrassMaterial);
|
// _mesh.SetSurfaceMaterial(0, _deepGrassMaterial);
|
||||||
break;
|
// break;
|
||||||
default:
|
// default:
|
||||||
GD.Print("Invalid tile type: " + value.ToString());
|
// GD.Print("Invalid tile type: " + value.ToString());
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,6 +100,9 @@ public class HexTile3D : Spatial
|
||||||
_grassMaterial = GD.Load<SpatialMaterial>("res://materials/GrassTile.tres");
|
_grassMaterial = GD.Load<SpatialMaterial>("res://materials/GrassTile.tres");
|
||||||
_deepGrassMaterial = GD.Load<SpatialMaterial>("res://materials/DeepGrassTile.tres");
|
_deepGrassMaterial = GD.Load<SpatialMaterial>("res://materials/DeepGrassTile.tres");
|
||||||
|
|
||||||
|
Mesh = GetNode<MeshInstance>("Mesh");
|
||||||
|
Debug.Assert(Mesh != null);
|
||||||
|
|
||||||
this.Type = TileType.Undefined;
|
this.Type = TileType.Undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,9 +125,9 @@ public class HexTile3D : Spatial
|
||||||
IsMouseOver = true;
|
IsMouseOver = true;
|
||||||
_previousMaterial = (SpatialMaterial)_mesh.MaterialOverride;
|
_previousMaterial = (SpatialMaterial)_mesh.MaterialOverride;
|
||||||
|
|
||||||
SpatialMaterial clonedMaterial = (SpatialMaterial)_mesh.GetSurfaceMaterial(0).Duplicate();
|
// SpatialMaterial clonedMaterial = (SpatialMaterial)_mesh.GetSurfaceMaterial(0).Duplicate();
|
||||||
clonedMaterial.AlbedoColor = new Color(1, 0, 0);
|
// clonedMaterial.AlbedoColor = new Color(1, 0, 0);
|
||||||
_mesh.MaterialOverride = clonedMaterial;
|
// _mesh.MaterialOverride = clonedMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAreaMouseExited()
|
public void OnAreaMouseExited()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scenes/HexTile3D.cs" type="Script" id=1]
|
[ext_resource path="res://scenes/HexTile3D.cs" type="Script" id=1]
|
||||||
[ext_resource path="res://materials/UndefinedTile.tres" type="Material" id=2]
|
[ext_resource path="res://assets/4x4checkerColor.png" type="Texture" id=2]
|
||||||
|
|
||||||
[sub_resource type="CylinderMesh" id=6]
|
[sub_resource type="CylinderMesh" id=6]
|
||||||
top_radius = 0.5
|
top_radius = 0.5
|
||||||
|
@ -10,17 +10,88 @@ height = 10.0
|
||||||
radial_segments = 6
|
radial_segments = 6
|
||||||
rings = 1
|
rings = 1
|
||||||
|
|
||||||
|
[sub_resource type="Shader" id=11]
|
||||||
|
code = "shader_type spatial;
|
||||||
|
render_mode specular_schlick_ggx, async_visible;
|
||||||
|
|
||||||
|
uniform sampler2D MapAlbedoTexture : hint_black_albedo;
|
||||||
|
uniform mat4 HexAffineInverse;
|
||||||
|
varying vec2 map_coord;
|
||||||
|
|
||||||
|
const mat2 _HexAffineInverse = mat2(vec2(1.333333, -0.6666667), vec2(0, -1.154701));
|
||||||
|
|
||||||
|
vec2 axial_to_offset(vec2 axial) {
|
||||||
|
ivec2 axial_i = ivec2(axial);
|
||||||
|
int x = axial_i.x;
|
||||||
|
int y = axial_i.y;
|
||||||
|
int off_y = y + (x - (x % 1)) / 2;
|
||||||
|
return vec2(float(x), float(off_y));
|
||||||
|
}
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
// Input:2
|
||||||
|
mat4 model_matrix = WORLD_MATRIX;
|
||||||
|
|
||||||
|
vec3 origin = vec4(WORLD_MATRIX * vec4(0, 0, 0, 1)).xyz;
|
||||||
|
|
||||||
|
vec3 axial_coords = vec3(_HexAffineInverse * origin.xz, 0);
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
map_coord = origin.xz * 0.25;
|
||||||
|
map_coord = axial_to_offset(axial_coords.xy) * 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Input:3
|
||||||
|
mat4 n_out3p0 = WORLD_MATRIX;
|
||||||
|
|
||||||
|
// TransformDecompose:5
|
||||||
|
vec3 n_out5p0 = n_out3p0[0].xyz;
|
||||||
|
vec3 n_out5p1 = n_out3p0[1].xyz;
|
||||||
|
vec3 n_out5p2 = n_out3p0[2].xyz;
|
||||||
|
vec3 n_out5p3 = n_out3p0[3].xyz;
|
||||||
|
|
||||||
|
// VectorOp:9
|
||||||
|
vec3 n_in9p1 = vec3(1.00000, 1.00000, 1.00000);
|
||||||
|
vec3 n_out9p0 = n_out5p3 * n_in9p1;
|
||||||
|
|
||||||
|
// TextureUniform:4
|
||||||
|
vec3 n_out4p0;
|
||||||
|
float n_out4p1;
|
||||||
|
{
|
||||||
|
vec4 n_tex_read = texture(MapAlbedoTexture, map_coord);
|
||||||
|
n_out4p0 = n_tex_read.rgb;
|
||||||
|
n_out4p1 = n_tex_read.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = n_out4p0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void light() {
|
||||||
|
// Output:0
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id=10]
|
||||||
|
shader = SubResource( 11 )
|
||||||
|
shader_param/HexAffineInverse = null
|
||||||
|
shader_param/MapAlbedoTexture = ExtResource( 2 )
|
||||||
|
|
||||||
[sub_resource type="CylinderShape" id=5]
|
[sub_resource type="CylinderShape" id=5]
|
||||||
height = 1.0
|
height = 1.0
|
||||||
radius = 0.5
|
radius = 0.5
|
||||||
|
|
||||||
[node name="HexTile3D" type="Spatial"]
|
[node name="HexTile3D" type="Spatial"]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0096302, 0, 0 )
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="Mesh" type="MeshInstance" parent="."]
|
[node name="Mesh" type="MeshInstance" parent="."]
|
||||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, -5, 0 )
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.00399733, -5, 0 )
|
||||||
mesh = SubResource( 6 )
|
mesh = SubResource( 6 )
|
||||||
material/0 = ExtResource( 2 )
|
material/0 = SubResource( 10 )
|
||||||
|
|
||||||
[node name="StaticBody" type="StaticBody" parent="."]
|
[node name="StaticBody" type="StaticBody" parent="."]
|
||||||
|
|
||||||
|
|
|
@ -5,301 +5,301 @@
|
||||||
[node name="Spatial" type="Spatial"]
|
[node name="Spatial" type="Spatial"]
|
||||||
|
|
||||||
[node name="HexTile3D1" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D1" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -0.0119554, 0, 0.999929, 0, 1, 0, -0.999929, 0, -0.0119554, 0, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
|
||||||
|
|
||||||
[node name="HexTile3D2" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D2" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 0.866 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.866 )
|
||||||
|
|
||||||
[node name="HexTile3D3" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D3" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 1.732 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.732 )
|
||||||
|
|
||||||
[node name="HexTile3D4" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D4" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 2.598 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.598 )
|
||||||
|
|
||||||
[node name="HexTile3D5" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D5" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 3.464 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3.464 )
|
||||||
|
|
||||||
[node name="HexTile3D8" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D8" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 4.33 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.33 )
|
||||||
|
|
||||||
[node name="HexTile3D6" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D6" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 5.196 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5.196 )
|
||||||
|
|
||||||
[node name="HexTile3D7" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D7" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 6.062 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6.062 )
|
||||||
|
|
||||||
[node name="HexTile3D9" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D9" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 6.928 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6.928 )
|
||||||
|
|
||||||
[node name="HexTile3D10" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D10" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 7.794 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7.794 )
|
||||||
|
|
||||||
[node name="HexTile3D11" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D11" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 0.433 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 0.433 )
|
||||||
|
|
||||||
[node name="HexTile3D12" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D12" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 1.299 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 1.299 )
|
||||||
|
|
||||||
[node name="HexTile3D13" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D13" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 2.165 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 2.165 )
|
||||||
|
|
||||||
[node name="HexTile3D14" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D14" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 3.031 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 3.031 )
|
||||||
|
|
||||||
[node name="HexTile3D15" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D15" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 3.897 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 3.897 )
|
||||||
|
|
||||||
[node name="HexTile3D16" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D16" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 4.763 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 4.763 )
|
||||||
|
|
||||||
[node name="HexTile3D17" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D17" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 5.629 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 5.629 )
|
||||||
|
|
||||||
[node name="HexTile3D18" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D18" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 6.495 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 6.495 )
|
||||||
|
|
||||||
[node name="HexTile3D19" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D19" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, 7.361 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, 7.361 )
|
||||||
|
|
||||||
[node name="HexTile3D20" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D20" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0.75, 0, -0.414769 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.75, 0, -0.414769 )
|
||||||
|
|
||||||
[node name="HexTile3D21" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D21" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0 )
|
||||||
|
|
||||||
[node name="HexTile3D22" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D22" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 0.866 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0.866 )
|
||||||
|
|
||||||
[node name="HexTile3D23" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D23" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 1.732 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.732 )
|
||||||
|
|
||||||
[node name="HexTile3D24" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D24" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 2.598 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 2.598 )
|
||||||
|
|
||||||
[node name="HexTile3D25" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D25" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 3.464 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 3.464 )
|
||||||
|
|
||||||
[node name="HexTile3D26" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D26" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 4.33 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 4.33 )
|
||||||
|
|
||||||
[node name="HexTile3D27" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D27" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 5.196 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 5.196 )
|
||||||
|
|
||||||
[node name="HexTile3D28" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D28" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 6.062 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 6.062 )
|
||||||
|
|
||||||
[node name="HexTile3D29" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D29" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 6.928 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 6.928 )
|
||||||
|
|
||||||
[node name="HexTile3D30" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D30" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 1.5, 0, 7.794 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 7.794 )
|
||||||
|
|
||||||
[node name="HexTile3D31" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D31" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 0.433 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 0.433 )
|
||||||
|
|
||||||
[node name="HexTile3D32" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D32" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 1.299 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 1.299 )
|
||||||
|
|
||||||
[node name="HexTile3D33" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D33" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 2.165 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 2.165 )
|
||||||
|
|
||||||
[node name="HexTile3D34" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D34" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 3.031 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 3.031 )
|
||||||
|
|
||||||
[node name="HexTile3D35" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D35" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 3.897 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 3.897 )
|
||||||
|
|
||||||
[node name="HexTile3D36" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D36" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 4.763 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 4.763 )
|
||||||
|
|
||||||
[node name="HexTile3D37" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D37" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 5.629 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 5.629 )
|
||||||
|
|
||||||
[node name="HexTile3D38" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D38" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 6.495 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 6.495 )
|
||||||
|
|
||||||
[node name="HexTile3D39" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D39" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, 7.361 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, 7.361 )
|
||||||
|
|
||||||
[node name="HexTile3D40" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D40" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 2.25, 0, -0.414769 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 0, -0.414769 )
|
||||||
|
|
||||||
[node name="HexTile3D41" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D41" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0 )
|
||||||
|
|
||||||
[node name="HexTile3D42" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D42" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 0.866 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0.866 )
|
||||||
|
|
||||||
[node name="HexTile3D43" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D43" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 1.732 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 1.732 )
|
||||||
|
|
||||||
[node name="HexTile3D44" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D44" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 2.598 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 2.598 )
|
||||||
|
|
||||||
[node name="HexTile3D45" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D45" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 3.464 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 3.464 )
|
||||||
|
|
||||||
[node name="HexTile3D46" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D46" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 4.33 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 4.33 )
|
||||||
|
|
||||||
[node name="HexTile3D47" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D47" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 5.196 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 5.196 )
|
||||||
|
|
||||||
[node name="HexTile3D48" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D48" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 6.062 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 6.062 )
|
||||||
|
|
||||||
[node name="HexTile3D49" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D49" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 6.928 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 6.928 )
|
||||||
|
|
||||||
[node name="HexTile3D50" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D50" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3, 0, 7.794 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 7.794 )
|
||||||
|
|
||||||
[node name="HexTile3D51" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D51" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 0.433 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 0.433 )
|
||||||
|
|
||||||
[node name="HexTile3D52" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D52" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 1.299 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 1.299 )
|
||||||
|
|
||||||
[node name="HexTile3D53" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D53" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 2.165 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 2.165 )
|
||||||
|
|
||||||
[node name="HexTile3D54" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D54" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 3.031 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 3.031 )
|
||||||
|
|
||||||
[node name="HexTile3D55" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D55" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 3.897 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 3.897 )
|
||||||
|
|
||||||
[node name="HexTile3D56" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D56" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 4.763 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 4.763 )
|
||||||
|
|
||||||
[node name="HexTile3D57" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D57" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 5.629 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 5.629 )
|
||||||
|
|
||||||
[node name="HexTile3D58" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D58" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 6.495 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 6.495 )
|
||||||
|
|
||||||
[node name="HexTile3D59" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D59" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, 7.361 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, 7.361 )
|
||||||
|
|
||||||
[node name="HexTile3D60" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D60" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.75, 0, -0.414769 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.75, 0, -0.414769 )
|
||||||
|
|
||||||
[node name="HexTile3D61" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D61" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 0 )
|
||||||
|
|
||||||
[node name="HexTile3D62" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D62" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 0.866 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 0.866 )
|
||||||
|
|
||||||
[node name="HexTile3D63" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D63" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 1.732 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 1.732 )
|
||||||
|
|
||||||
[node name="HexTile3D64" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D64" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 2.598 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 2.598 )
|
||||||
|
|
||||||
[node name="HexTile3D65" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D65" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 3.464 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 3.464 )
|
||||||
|
|
||||||
[node name="HexTile3D66" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D66" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 4.33 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 4.33 )
|
||||||
|
|
||||||
[node name="HexTile3D67" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D67" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 5.196 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 5.196 )
|
||||||
|
|
||||||
[node name="HexTile3D68" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D68" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 6.062 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 6.062 )
|
||||||
|
|
||||||
[node name="HexTile3D69" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D69" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 6.928 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 6.928 )
|
||||||
|
|
||||||
[node name="HexTile3D70" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D70" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 4.5, 0, 7.794 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 7.794 )
|
||||||
|
|
||||||
[node name="HexTile3D71" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D71" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 0.433 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 0.433 )
|
||||||
|
|
||||||
[node name="HexTile3D72" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D72" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 1.299 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 1.299 )
|
||||||
|
|
||||||
[node name="HexTile3D73" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D73" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 2.165 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 2.165 )
|
||||||
|
|
||||||
[node name="HexTile3D74" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D74" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 3.031 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 3.031 )
|
||||||
|
|
||||||
[node name="HexTile3D75" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D75" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 3.897 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 3.897 )
|
||||||
|
|
||||||
[node name="HexTile3D76" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D76" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 4.763 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 4.763 )
|
||||||
|
|
||||||
[node name="HexTile3D77" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D77" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 5.629 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 5.629 )
|
||||||
|
|
||||||
[node name="HexTile3D78" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D78" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 6.495 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 6.495 )
|
||||||
|
|
||||||
[node name="HexTile3D79" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D79" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, 7.361 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, 7.361 )
|
||||||
|
|
||||||
[node name="HexTile3D80" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D80" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 5.25, 0, -0.414769 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.25, 0, -0.414769 )
|
||||||
|
|
||||||
[node name="HexTile3D81" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D81" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0 )
|
||||||
|
|
||||||
[node name="HexTile3D82" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D82" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 0.866 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0.866 )
|
||||||
|
|
||||||
[node name="HexTile3D83" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D83" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 1.732 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1.732 )
|
||||||
|
|
||||||
[node name="HexTile3D84" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D84" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 2.598 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 2.598 )
|
||||||
|
|
||||||
[node name="HexTile3D85" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D85" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 3.464 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 3.464 )
|
||||||
|
|
||||||
[node name="HexTile3D86" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D86" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 4.33 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 4.33 )
|
||||||
|
|
||||||
[node name="HexTile3D87" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D87" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 5.196 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 5.196 )
|
||||||
|
|
||||||
[node name="HexTile3D88" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D88" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 6.062 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 6.062 )
|
||||||
|
|
||||||
[node name="HexTile3D89" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D89" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 6.928 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 6.928 )
|
||||||
|
|
||||||
[node name="HexTile3D90" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D90" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6, 0, 7.794 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 7.794 )
|
||||||
|
|
||||||
[node name="HexTile3D91" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D91" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 0.433 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 0.433 )
|
||||||
|
|
||||||
[node name="HexTile3D92" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D92" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 1.299 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 1.299 )
|
||||||
|
|
||||||
[node name="HexTile3D93" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D93" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 2.165 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 2.165 )
|
||||||
|
|
||||||
[node name="HexTile3D94" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D94" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 3.031 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 3.031 )
|
||||||
|
|
||||||
[node name="HexTile3D95" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D95" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 3.897 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 3.897 )
|
||||||
|
|
||||||
[node name="HexTile3D96" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D96" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 4.763 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 4.763 )
|
||||||
|
|
||||||
[node name="HexTile3D97" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D97" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 5.629 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 5.629 )
|
||||||
|
|
||||||
[node name="HexTile3D98" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D98" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 6.495 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 6.495 )
|
||||||
|
|
||||||
[node name="HexTile3D99" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D99" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, 7.361 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, 7.361 )
|
||||||
|
|
||||||
[node name="HexTile3D100" parent="." instance=ExtResource( 1 )]
|
[node name="HexTile3D100" parent="." instance=ExtResource( 1 )]
|
||||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 6.75, 0, -0.414769 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.75, 0, -0.414769 )
|
||||||
|
|
|
@ -1,62 +1,6 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[sub_resource type="Shader" id=1]
|
[ext_resource path="res://materials/IslandColorRampShader.tres" type="Material" id=1]
|
||||||
code = "shader_type canvas_item;
|
|
||||||
render_mode skip_vertex_transform;
|
|
||||||
|
|
||||||
void vertex() {
|
|
||||||
VERTEX = (WORLD_MATRIX * (EXTRA_MATRIX * vec4(VERTEX, 0.0, 1.0))).xy;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 color_ramp(float h) {
|
|
||||||
if (h < 0.4f) {
|
|
||||||
return vec3(0, 0, 0.6);
|
|
||||||
} else if (h < 0.45f) {
|
|
||||||
return vec3(0, 0, 0.7);
|
|
||||||
} else if (h < 0.5f) {
|
|
||||||
return vec3(0, 0, 1);
|
|
||||||
} else if (h < 0.55){
|
|
||||||
return vec3(0.8, 0.8, 0.1);
|
|
||||||
} else if (h < 0.6){
|
|
||||||
return vec3(0, 0.6, 0);
|
|
||||||
} else if (h < 0.68){
|
|
||||||
return vec3(0, 0.4, 0);
|
|
||||||
} else if (h <= 0.78){
|
|
||||||
return vec3(0.6, 0.6, 0.6);
|
|
||||||
} else if (h < 1.0){
|
|
||||||
return vec3(0.8, 0.8, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
return vec3(1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 rgbToGrayscale(vec3 color) {
|
|
||||||
return vec3(dot(color.rgb, vec3(0.299, 0.587, 0.144)));
|
|
||||||
}
|
|
||||||
|
|
||||||
float borderFalloff(vec2 uv) {
|
|
||||||
return min(
|
|
||||||
(0.5 - abs(-uv.x + 0.5)) * 2.0,
|
|
||||||
(0.5 - abs(-uv.y + 0.5)) * 2.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
float borderFalloffCircle(vec2 uv) {
|
|
||||||
return (0.5 - length(vec2(uv - vec2(0.5, 0.5)))) * 2.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment() {
|
|
||||||
vec4 texture_color = texture(TEXTURE, UV);
|
|
||||||
|
|
||||||
|
|
||||||
COLOR.rgb = vec3(abs(UV.x - 0.5) * 2.0);
|
|
||||||
//COLOR.rgb = color_ramp(texture_color.r * borderFalloffCircle(UV) * 1.8);
|
|
||||||
COLOR.rgb = color_ramp(texture_color.r * borderFalloff(UV) * 1.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=2]
|
|
||||||
shader = SubResource( 1 )
|
|
||||||
|
|
||||||
[sub_resource type="OpenSimplexNoise" id=3]
|
[sub_resource type="OpenSimplexNoise" id=3]
|
||||||
seed = 57
|
seed = 57
|
||||||
|
@ -79,7 +23,7 @@ margin_right = 861.0
|
||||||
margin_bottom = 595.0
|
margin_bottom = 595.0
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="GridContainer"]
|
[node name="TextureRect" type="TextureRect" parent="GridContainer"]
|
||||||
material = SubResource( 2 )
|
material = ExtResource( 1 )
|
||||||
margin_right = 861.0
|
margin_right = 861.0
|
||||||
margin_bottom = 595.0
|
margin_bottom = 595.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
using Godot;
|
using Godot;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using GoDotLog;
|
||||||
|
using Vector2 = Godot.Vector2;
|
||||||
|
using Vector3 = Godot.Vector3;
|
||||||
|
|
||||||
public class TileWorld : Spatial
|
public class TileWorld : Spatial
|
||||||
{
|
{
|
||||||
|
@ -9,27 +14,42 @@ public class TileWorld : Spatial
|
||||||
delegate void WorldGenerated();
|
delegate void WorldGenerated();
|
||||||
|
|
||||||
// public members
|
// public members
|
||||||
public Image Heightmap;
|
public Vector2 Size = new Vector2(10, 10);
|
||||||
public Vector2 Size = new Vector2(100, 100);
|
|
||||||
public float HeightScale = 10;
|
public float HeightScale = 10;
|
||||||
|
public Image Heightmap;
|
||||||
|
public Image Colormap;
|
||||||
|
public int Seed = 0;
|
||||||
|
|
||||||
// private members
|
// private members
|
||||||
private HexGrid _hexGrid;
|
private HexGrid _hexGrid;
|
||||||
private Random _tileTypeRandom;
|
private Random _tileTypeRandom;
|
||||||
|
private Viewport _offscreenViewport;
|
||||||
|
private TextureRect _offscreenTextureRect;
|
||||||
|
|
||||||
// Called when the node enters the scene tree for the first time.
|
// Called when the node enters the scene tree for the first time.
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
_hexGrid = new HexGrid();
|
_hexGrid = new HexGrid();
|
||||||
_tileTypeRandom = new Random();
|
_tileTypeRandom = new Random();
|
||||||
|
|
||||||
|
_offscreenViewport = (Viewport)GetNode("OffscreenViewport");
|
||||||
|
Debug.Assert(_offscreenViewport != null);
|
||||||
|
_offscreenViewport.Size = Size;
|
||||||
|
_offscreenTextureRect = (TextureRect)GetNode("OffscreenViewport/TextureRect");
|
||||||
|
Debug.Assert(_offscreenTextureRect != null);
|
||||||
|
_offscreenTextureRect.SetSize(Size);
|
||||||
|
|
||||||
|
//VisualServer.Singleton.Connect("frame_post_draw", this, nameof(GenerateNoiseColorMap));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void Generate()
|
public void Generate()
|
||||||
{
|
{
|
||||||
GenerateSimpleMap();
|
GenerateSimpleMap();
|
||||||
//GenerateNoiseMap();
|
// GenerateNoiseMap();
|
||||||
|
|
||||||
|
GenerateNoiseColorMap();
|
||||||
|
|
||||||
EmitSignal("WorldGenerated");
|
EmitSignal("WorldGenerated");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,14 +78,36 @@ public class TileWorld : Spatial
|
||||||
NoiseTexture noise_texture = new NoiseTexture();
|
NoiseTexture noise_texture = new NoiseTexture();
|
||||||
OpenSimplexNoise noise_generator = new OpenSimplexNoise();
|
OpenSimplexNoise noise_generator = new OpenSimplexNoise();
|
||||||
|
|
||||||
noise_generator.Seed = -1626828106;
|
noise_generator.Seed = Seed;
|
||||||
noise_generator.Octaves = 3;
|
noise_generator.Octaves = 4;
|
||||||
noise_generator.Period = 20;
|
noise_generator.Period = 20;
|
||||||
noise_generator.Persistence = 0.1f;
|
noise_generator.Persistence = 0.1f;
|
||||||
noise_generator.Lacunarity = 2;
|
noise_generator.Lacunarity = 2;
|
||||||
|
|
||||||
Heightmap.CopyFrom(noise_generator.GetImage((int)Size.x, (int)Size.y, null));
|
Heightmap.CopyFrom(noise_generator.GetImage((int)Size.x, (int)Size.y, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void GenerateNoiseColorMap()
|
||||||
|
{
|
||||||
|
Colormap = new Image();
|
||||||
|
Colormap.Create((int)Size.x, (int)Size.y, false, Image.Format.Rgba8);
|
||||||
|
|
||||||
|
NoiseTexture noise_texture = new NoiseTexture();
|
||||||
|
OpenSimplexNoise noise_generator = new OpenSimplexNoise();
|
||||||
|
|
||||||
|
noise_generator.Seed = Seed;
|
||||||
|
noise_generator.Octaves = 4;
|
||||||
|
noise_generator.Period = 20;
|
||||||
|
noise_generator.Persistence = 0.2f;
|
||||||
|
noise_generator.Lacunarity = 4;
|
||||||
|
|
||||||
|
ImageTexture imageTexture = new ImageTexture();
|
||||||
|
imageTexture.CreateFromImage(noise_generator.GetImage((int)Size.x, (int)Size.y, null));
|
||||||
|
imageTexture.Flags = 0;
|
||||||
|
_offscreenTextureRect.Texture = imageTexture;
|
||||||
|
Colormap.CopyFrom(_offscreenViewport.GetTexture().GetData());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ApplyHeightMap()
|
private void ApplyHeightMap()
|
||||||
|
|
|
@ -17,12 +17,13 @@ size = Vector2( 100, 100 )
|
||||||
own_world = true
|
own_world = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
hdr = false
|
hdr = false
|
||||||
|
disable_3d = true
|
||||||
usage = 0
|
usage = 0
|
||||||
render_target_v_flip = true
|
render_target_v_flip = true
|
||||||
render_target_update_mode = 3
|
render_target_update_mode = 3
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="OffscreenViewport"]
|
[node name="TextureRect" type="TextureRect" parent="OffscreenViewport"]
|
||||||
material = ExtResource( 3 )
|
material = ExtResource( 3 )
|
||||||
margin_right = 40.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
texture = ExtResource( 2 )
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="OffscreenViewport"]
|
||||||
|
|
Loading…
Reference in New Issue