Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source_md5="3386c5f924ab454d044de923826a8863"
dest_md5="89c345643a6ed38f4f5e69c507b3a7fe"

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source_md5="2c84ab820e6ab4fd3edac0e8021dc46b"
dest_md5="f999f4cf7e7b734127087a318237503c"

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source_md5="a53ac63cf06100eacb004d186a71fced"
dest_md5="1d771ff18448ae2586bc9f65bb2ac41a"

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source_md5="feb0f2665450f2f4c618fb985bcc5ffc"
dest_md5="f5865bc9861031704e2be9e39c2f56ce"

Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions Phase2/Godot_Toolset/Main/assets/add_button_texture.png.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/add_button_texture.png-98a4c039ca15f3d568027e4f1424e999.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/add_button_texture.png"
dest_files=[ "res://.import/add_button_texture.png-98a4c039ca15f3d568027e4f1424e999.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
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=true
svg/scale=1.0
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions Phase2/Godot_Toolset/Main/assets/add_button_texture_2.png.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/add_button_texture_2.png-b44fd960bb4c5d20fcb1af17f813f357.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/add_button_texture_2.png"
dest_files=[ "res://.import/add_button_texture_2.png-b44fd960bb4c5d20fcb1af17f813f357.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
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=true
svg/scale=1.0
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions Phase2/Godot_Toolset/Main/assets/remove_button_texture.png.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/remove_button_texture.png-15cbc37d7deab63dc33e5542837efac4.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/remove_button_texture.png"
dest_files=[ "res://.import/remove_button_texture.png-15cbc37d7deab63dc33e5542837efac4.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
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=true
svg/scale=1.0
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/remove_button_texture_2.png-0e5b8f541716f13afdc7ff9ae04ab75e.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/remove_button_texture_2.png"
dest_files=[ "res://.import/remove_button_texture_2.png-0e5b8f541716f13afdc7ff9ae04ab75e.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
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=true
svg/scale=1.0
7 changes: 6 additions & 1 deletion Phase2/Godot_Toolset/Main/project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,18 @@ _global_script_class_icons={
[application]

config/name="bcirpg_toolset"
run/main_scene="res://screens/wizards/character_creation/character_creation_wizard.tscn"
run/main_scene="res://screens/main_menu.tscn"
config/icon="res://icon.png"

[autoload]

SpecialAbility="*res://middleware/specialabliities/SpecialAbility.gd"

[display]

window/stretch/mode="viewport"
window/stretch/aspect="expand"

[global]

filters=false
Expand Down
30 changes: 30 additions & 0 deletions Phase2/Godot_Toolset/Main/screens/main_menu.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[gd_scene load_steps=2 format=2]

[ext_resource path="res://user_interface/button_opene_scene_in_window.gd" type="Script" id=2]

[node name="menu" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0

[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchor_left = 0.333
anchor_top = 0.125
anchor_right = 0.666
anchor_bottom = 0.875

[node name="ButtonCharacterCreation" type="Button" parent="VBoxContainer"]
margin_right = 340.0
margin_bottom = 20.0
text = "Character Creation"
script = ExtResource( 2 )
scene_path = "res://screens/wizards/character_creation/character_creation_wizard.tscn"
window_title = "Character Editor"

[node name="ButtonGenreSubstitution" type="Button" parent="VBoxContainer"]
margin_top = 24.0
margin_right = 340.0
margin_bottom = 44.0
text = "Genre Substitution"
script = ExtResource( 2 )
scene_path = "res://screens/wizards/genre_substitution/genre_substitution_wizard.tscn"
window_title = "Genre Substitution"
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ script = ExtResource( 3 )
[node name="ColorRect" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
margin_top = -6.0
margin_bottom = -6.0
color = Color( 0.537255, 0.537255, 0.537255, 1 )

[node name="RootVBoxContainer" type="VBoxContainer" parent="."]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
extends Control

export var display_tree_path : NodePath
onready var display_tree = get_node(display_tree_path)

export var file_dialog_path : NodePath
onready var file_dialog = get_node(file_dialog_path)

export var add_button_texture : Texture
export var add_button_texture_2 : Texture
export var remove_button_texture : Texture

#var replacements_dict : Dictionary = {}
#var genre_array : Array = [] # doesn't seem strictly necessary; for export into expected format


# Called when the node enters the scene tree for the first time.
func _ready():
display_tree.set_hide_root(true)
display_tree.columns = 4
display_tree.set_column_min_width(0, 32)
display_tree.set_column_expand(0, false)
display_tree.set_column_min_width(2, 32)
display_tree.set_column_expand(2, false)
display_tree.connect("button_pressed", self, "_on_tree_button_pressed")

func _get_data_as_json():
var tree_dict = _display_tree_to_dict()
var json_data = {"GENRES":tree_dict.keys(), "REPLACEMENTS":tree_dict}
return to_json(json_data)

func _load_data_from_json(json_text):
var parsed_json = parse_json(json_text)
print(parsed_json)
var replacements_dict = parsed_json.get("REPLACEMENTS")
#genre_array = parsed_json.get("GENRES")
_refresh_tree()
_fill_tree(replacements_dict)

func _add_genre(genre_name : String):
# add genre to tree
# todo: prevent duplicates????

var new_genre = display_tree.create_item(display_tree.get_root())
new_genre.set_text(1, genre_name)
new_genre.set_editable(1, true)
new_genre.set_expand_right(1, true)
new_genre.add_button(0, remove_button_texture, -1, false, "Remove Genre")

return new_genre

func _add_replacement(genre_node, generic, replacement):
var new_replacement = display_tree.create_item(genre_node)
new_replacement.set_text(1, generic)
new_replacement.set_text(2, " -> ")
new_replacement.set_text(3, replacement)

new_replacement.set_editable(1, true)
new_replacement.set_editable(3, true)

new_replacement.set_selectable(2, false)

new_replacement.add_button(0, remove_button_texture, -1, false, "Remove Replacement")

return new_replacement

func _add_genre_button():
var add_genre_button = display_tree.create_item(display_tree.get_root())
add_genre_button.add_button(0, add_button_texture_2, -1, false, "Add Genre")
add_genre_button.set_selectable(1, false)
add_genre_button.set_selectable(2, false)
add_genre_button.set_selectable(3, false)

func _add_replacement_button(genre_node):
var add_replacement_button = display_tree.create_item(genre_node)
add_replacement_button.add_button(0, add_button_texture, -1, false, "Add Replacement")
add_replacement_button.set_selectable(1, false)
add_replacement_button.set_selectable(2, false)
add_replacement_button.set_selectable(3, false)


func _display_tree_to_dict():
var tree_dict = {} # make a dict to store our tree in
var current_genre = display_tree.get_root().get_children() # the root exists to store our subtrees; we don't want it in the dict

while current_genre != null:
var current_genre_text = current_genre.get_text(1)
if current_genre_text != "": # currently, the buttons are blank tree items with texture buttons in them, so we'll skip them
tree_dict[current_genre_text] = {}
var current_generic = current_genre.get_children() # fyi, get_children actually just gets the first child item

while current_generic != null:
var current_generic_text = current_generic.get_text(1)
if current_generic_text != "":
tree_dict[current_genre_text][current_generic_text] = current_generic.get_text(3)
current_generic = current_generic.get_next()

current_genre = current_genre.get_next()
return tree_dict

func _fill_tree(replacements_dict): # why, yes, i am iterating through dicts. cry about it
for genre in replacements_dict.keys():
var genre_node = _add_genre(genre)

for generic in replacements_dict[genre].keys():
var replacement = replacements_dict[genre][generic]
_add_replacement(genre_node, generic, replacement)

_add_replacement_button(genre_node)
_add_genre_button()
#_add_tree_buttons()

func _refresh_tree():
display_tree.clear()
var root_node = display_tree.create_item()
root_node.set_text(0,"Genres")


func _on_LoadButton_pressed():
file_dialog.set_mode(FileDialog.MODE_OPEN_FILE)
file_dialog.popup_centered()

func _on_SaveButton_pressed():
file_dialog.set_mode(FileDialog.MODE_SAVE_FILE)
file_dialog.popup()

func _on_FileDialog_file_selected(path):
var file = File.new()
if file_dialog.get_mode() == FileDialog.MODE_OPEN_FILE:
file.open(path, File.READ)
var file_text = file.get_as_text()
_load_data_from_json(file_text)

#_fill_tree()
elif file_dialog.get_mode() == FileDialog.MODE_SAVE_FILE:
if file.file_exists(path):
print("existing file; just fyi it's gonna overwrite")
file.open(path, File.WRITE)
file.store_string(_get_data_as_json())
file.close()

func _on_NewButton_pressed():
_refresh_tree()
_add_genre_button()

func _on_tree_button_pressed(button_tree_item, column, id):
var button_index = button_tree_item.get_button_by_id(0, id)
var button_texture = button_tree_item.get_button(0, button_index)

if button_texture == remove_button_texture:
button_tree_item.get_parent().remove_child(button_tree_item)
button_tree_item.free()
elif button_texture == add_button_texture:
if button_tree_item.get_parent() == display_tree.get_root():
print("adding genre")
var new_genre_node = _add_genre("")
_add_replacement_button(new_genre_node)
else:
print("adding replacement")
_add_replacement(button_tree_item.get_parent(), "", "")
button_tree_item.move_to_bottom()
else:
print("unrecognized button! Initializing self-destruct sequence.")
Loading