Bush/Tree refill, fast-forward, fixed item drop incorrect item
parent
947b762774
commit
75af4679c0
|
@ -81,6 +81,11 @@ force_game_tick={
|
|||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
force_game_tick_fast={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":103,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
key_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":52,"key_label":0,"unicode":52,"location":0,"echo":false,"script":null)
|
||||
|
|
|
@ -40,6 +40,8 @@ func _process(delta: float) -> void:
|
|||
world.camp_manager.campfire_extinguish()
|
||||
if Input.is_action_just_pressed("force_game_tick"):
|
||||
_on_game_tick_timeout()
|
||||
if Input.is_action_pressed("force_game_tick_fast"):
|
||||
_on_game_tick_timeout()
|
||||
if Input.is_action_just_pressed("key_6"):
|
||||
toggle_temperature_layer()
|
||||
|
||||
|
@ -52,12 +54,17 @@ func player_health_depleted():
|
|||
func _on_game_tick_timeout() -> void:
|
||||
var timer_on_game_tick_timeout: PerformanceTimer = PerformanceTimer.new()
|
||||
timer_on_game_tick_timeout.display_name = "game tick duration"
|
||||
|
||||
tilemap_navigation.game_tick_start()
|
||||
world.step_visualizer.game_tick_start()
|
||||
world.game_tick_start()
|
||||
|
||||
player.game_tick()
|
||||
|
||||
tilemap_navigation.game_tick_end()
|
||||
world.step_visualizer.game_tick_end()
|
||||
world.game_tick_end()
|
||||
|
||||
update_bars()
|
||||
|
||||
timer_on_game_tick_timeout.stop()
|
||||
|
||||
|
||||
|
|
|
@ -91,13 +91,17 @@ func pick_up_item(tilemap_pos: Vector2i) -> void:
|
|||
var pick_up_item_type: Vector2i = game_manager.world.tilemap_interactive.tilemap.get_cell_atlas_coords(tilemap_pos)
|
||||
|
||||
# check if tile will transform into another tile upon pickup
|
||||
var tile_after_pickup_transform = null
|
||||
var tile_drop_item: Vector2i = inventory_slot
|
||||
if tile_drop_item == tilemap_types.OBJECT_I_FILLED_BUSH:
|
||||
tile_drop_item = tilemap_types.OBJECT_I_BERRY
|
||||
elif tile_drop_item == tilemap_types.OBJECT_I_TREE_FULL:
|
||||
tile_drop_item = tilemap_types.OBJECT_I_STICK
|
||||
|
||||
var tile_after_pickup_transform = null
|
||||
if pick_up_item_type == tilemap_types.OBJECT_I_FILLED_BUSH:
|
||||
tile_after_pickup_transform = tilemap_types.OBJECT_I_EMPTY_BUSH
|
||||
pick_up_item_type = tilemap_types.OBJECT_I_BERRY
|
||||
tile_drop_item = tilemap_types.OBJECT_I_BERRY
|
||||
if pick_up_item_type == tilemap_types.OBJECT_I_TREE_FULL:
|
||||
elif pick_up_item_type == tilemap_types.OBJECT_I_TREE_FULL:
|
||||
tile_after_pickup_transform = tilemap_types.OBJECT_I_TREE_CUT
|
||||
pick_up_item_type = tilemap_types.OBJECT_I_STICK
|
||||
tile_drop_item = tilemap_types.OBJECT_I_STICK
|
||||
|
|
|
@ -65,7 +65,20 @@ func find_path_allow_neighbors(start_position: Vector2i, end_position: Vector2i,
|
|||
return path
|
||||
|
||||
else:
|
||||
for direction in walking_directions:
|
||||
# be smart about which to check first
|
||||
var directions: Array[Vector2i] = []
|
||||
if start_position.y < end_position.y:
|
||||
directions = [Vector2i(0, -1), Vector2i(-1, 0), Vector2i(1, 0), Vector2i(0, 1)]
|
||||
elif start_position.y > end_position.y:
|
||||
directions = [Vector2i(0, 1), Vector2i(-1, 0), Vector2i(1, 0), Vector2i(0, -1)]
|
||||
elif start_position.x < end_position.x:
|
||||
directions = [Vector2i(-1, 0), Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0)]
|
||||
elif start_position.x > end_position.x:
|
||||
directions = [Vector2i(1, 0), Vector2i(0, -1), Vector2i(0, 1), Vector2i(-1, 0)]
|
||||
else:
|
||||
directions = walking_directions
|
||||
|
||||
for direction in directions:
|
||||
var neighbor: Vector2i = end_position + direction
|
||||
var path: Array[Vector2i] = find_path(start_position, neighbor, max_radius)
|
||||
if path.size() != 0:
|
||||
|
|
|
@ -11,6 +11,7 @@ var tilemap_temperature: TileMapLayerAccess = TileMapLayerAccess.new()
|
|||
var tilemap_nav_vis: TileMapLayerAccess = TileMapLayerAccess.new()
|
||||
# managers
|
||||
var camp_manager: CampManager = CampManager.new()
|
||||
|
||||
# visualization
|
||||
@onready var step_visualizer: StepVisualization = $StepVisualization
|
||||
|
||||
|
@ -69,3 +70,23 @@ func is_walkable(position: Vector2i) -> bool:
|
|||
var interactive_walkable: bool = tilemap_interactive.get_custom_data(position, "walkable", true)
|
||||
|
||||
return ground_tile_walkable and non_interactive_walkable and interactive_walkable
|
||||
|
||||
|
||||
func game_tick_start() -> void:
|
||||
step_visualizer.game_tick_start()
|
||||
|
||||
# refill empty bushes
|
||||
var empty_bushes: Array[Vector2i] = tilemap_interactive.get_cells_by_type(tilemap_types.OBJECT_I_EMPTY_BUSH)
|
||||
for bush in empty_bushes:
|
||||
if randf() < 0.01:
|
||||
tilemap_interactive.set_cell(bush, tilemap_types.OBJECT_I_FILLED_BUSH)
|
||||
|
||||
# refill empty trees
|
||||
var empty_trees: Array[Vector2i] = tilemap_interactive.get_cells_by_type(tilemap_types.OBJECT_I_TREE_CUT)
|
||||
for tree in empty_trees:
|
||||
if randf() < 0.01:
|
||||
tilemap_interactive.set_cell(tree, tilemap_types.OBJECT_I_TREE_FULL)
|
||||
|
||||
|
||||
func game_tick_end() -> void:
|
||||
step_visualizer.game_tick_end()
|
||||
|
|
Loading…
Reference in New Issue