Made rendering more interesting

master
Martin Felis 2022-01-06 22:26:53 +01:00
parent deaaf43db9
commit f0c3035a5f
3 changed files with 70 additions and 3 deletions

View File

@ -43,6 +43,9 @@ window/stretch/aspect="expand"
view=false
android=false
export=false
environ=false
clear=false
clear_color=false
[input]
@ -82,5 +85,5 @@ common/enable_pause_aware_picking=true
[rendering]
environment/default_clear_color=Color( 0.0745098, 0.388235, 0.576471, 1 )
environment/default_clear_color=Color( 0.027451, 0.133333, 0.34902, 1 )
environment/default_environment="res://default_env.tres"

View File

@ -3,7 +3,8 @@ extends Node2D
enum TileType {
None,
Sand,
Grass
Grass,
DeepGrass
}
var TileTypeFromString = { "None": TileType.None, "Sand": TileType.Sand, "Grass": TileType.Grass }
@ -30,11 +31,13 @@ func set_hex_scale(scale):
var NoneColors = create_color_array ("#885555")
var SandColors = create_color_array ("#ffa106")
var GrassColors = create_color_array ("#4b9635")
var DeepGrassColors = create_color_array ("#2b5d1d")
HexColors = {
TileType.None: NoneColors,
TileType.Sand: SandColors,
TileType.Grass: GrassColors
TileType.Grass: GrassColors,
TileType.DeepGrass: DeepGrassColors
}
func create_color_array(color: Color):
@ -50,4 +53,5 @@ func get_tile_color (type_name: String):
"None": return HexColors[TileType.None]
"Sand": return HexColors[TileType.Sand]
"Grass": return HexColors[TileType.Grass]
"DeepGrass": return HexColors[TileType.DeepGrass]
_ : return null

View File

@ -95,12 +95,38 @@ func mark_grass():
func mark_deep_grass():
var old_tiles = tiles
tiles = {}
for tile in old_tiles:
if old_tiles[tile] != "Grass":
tiles[tile] = old_tiles[tile]
continue
var hex_coord = Globals.WorldToHex(tile)
var neighbours = Globals.HexGrid.get_hex_at(hex_coord).get_all_adjacent()
var is_center_cell = true
for cell in neighbours:
var world_coord = Globals.HexToWorld(hex_coord + cell.axial_coords)
if world_coord in old_tiles.keys() and old_tiles[world_coord] != "Grass":
is_center_cell = false
break
if is_center_cell:
tiles[tile] = "DeepGrass"
else:
tiles[tile] = "Grass"
func generate():
var size = 62
generate_random_walk(size)
extrude_island()
mark_grass()
mark_deep_grass()
calc_bbox()
update()
@ -231,10 +257,44 @@ func draw_bsphere():
func _draw():
var transform = get_transform()
# draw transitions beach to deep water
for coord in tiles.keys():
var color_array = null
if tiles[coord] == "Sand":
draw_set_transform (coord + offset_world, 0, Vector2.ONE * 6)
color_array = HexTileDrawer.create_color_array(Color("#10479bcd"))
draw_polygon(HexTileDrawer.HexPoints, color_array)
draw_set_transform (coord + offset_world, 0, Vector2.ONE * 4)
color_array = HexTileDrawer.create_color_array(Color("#10479bcd"))
draw_polygon(HexTileDrawer.HexPoints, color_array)
draw_set_transform (coord + offset_world, 0, Vector2.ONE * 2)
color_array = HexTileDrawer.create_color_array(Color("#10479bcd"))
draw_polygon(HexTileDrawer.HexPoints, color_array)
# draw white line around island as breaking waves
for coord in tiles.keys():
if tiles[coord] == "Sand":
draw_set_transform (coord + offset_world, 0, Vector2.ONE * 1.05)
var color_array = HexTileDrawer.create_color_array(Color("#ffffffff"))
draw_polygon(HexTileDrawer.HexPoints, color_array)
# regular tile drawing
for coord in tiles.keys():
draw_set_transform (coord + offset_world, 0, Vector2.ONE)
draw_polygon(HexTileDrawer.HexPoints, HexTileDrawer.get_tile_color(tiles[coord]))
# make grass tiles a bit more irregular
for coord in tiles.keys():
var color_array = null
if tiles[coord] == "Grass":
draw_set_transform (coord + offset_world, 0, Vector2.ONE * 2)
color_array = HexTileDrawer.create_color_array(Color("#4f4b9635"))
draw_polygon(HexTileDrawer.HexPoints, color_array)
if highlight_treasure and treasure_local_coords:
draw_set_transform (treasure_local_coords + offset_world, 0, Vector2.ONE)
draw_polygon(HexTileDrawer.HexPoints, HexTileDrawer.create_color_array("#922"))