added some sound triggers and holes in the map

This commit is contained in:
2023-12-17 02:02:16 +11:00
parent 046c4f5afb
commit e1a867d2a9
99 changed files with 1375 additions and 239 deletions

View File

@ -5,18 +5,23 @@ signal item_added(item)
signal item_removed(item)
@export var max_size := 0
@export var contents : Array[Item] = []
var selected_index := 0
var selected_item : Item :
var contents = {}
var size : int :
get:
return contents[selected_index] if contents.size() > 0 else null
var x = 0
for key in contents:
x += contents[key]
return x
set(_value):
return
func add(item : Item) -> bool:
if item != null and contents.size() < max_size or max_size == 0:
contents.append(item)
if item != null and max_size == 0 or size < max_size:
if contents.has(item):
contents[item] += 1
else:
contents[item] = 1
item_added.emit(item)
networked_add.rpc(Data.cards.find(item))
return true
@ -24,50 +29,29 @@ func add(item : Item) -> bool:
func remove_at(index : int) -> Item:
if contents.size() <= 0:
return null
var item = contents[index]
contents.remove_at(index)
if selected_index >= contents.size() and selected_index > 0:
selected_index -= 1
var item = contents.keys()[index]
contents[item] -= 1
if contents[item] == 0:
contents.erase(item)
item_removed.emit(item)
networked_remove_at.rpc(index)
return item
func remove() -> Item:
return remove_at(selected_index)
func increment_selected():
if contents.size() > 0:
selected_index += 1
if selected_index >= contents.size():
selected_index = 0
networked_set_selected.rpc(selected_index)
func decrement_selected():
if contents.size() > 0:
selected_index -= 1
if selected_index < 0:
selected_index = contents.size() - 1
networked_set_selected.rpc(selected_index)
@rpc("reliable", "any_peer")
func networked_add(value):
contents.append(Data.cards[value])
item_added.emit(Data.cards[value])
var item = Data.cards[value]
if contents.has(item):
contents[item] += 1
else:
contents[item] = 0
item_added.emit(item)
@rpc("reliable", "any_peer")
func networked_remove_at(value):
var item = contents[value]
contents.remove_at(value)
var item = contents.keys[value]
contents[item] -= 1
if contents[item] == 0:
contents.erase(item)
item_removed.emit(item)
@rpc("reliable", "any_peer")
func networked_set_selected(value):
selected_index = value