diff --git a/.github/workflows/godot.yml b/.github/workflows/godot.yml
deleted file mode 100644
index b3c4412..0000000
--- a/.github/workflows/godot.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: Build Godot Project
-
-on:
- push:
- branches: [main, develop, "releases/**"]
- pull_request:
- branches: [main, develop, "releases/**"]
-
-jobs:
- Godot:
- timeout-minutes: 15
- continue-on-error: true
- runs-on: ubuntu-latest
- strategy:
- matrix:
- platform: [linux, windows]
- steps:
- - uses: actions/checkout@v2
- with:
- lfs: true
- - name: Build
- id: build
- uses: manleydev/build-godot-action@v1.4.1
- with:
- name: My Simulation
- preset: ${{ matrix.platform }}
- debugMode: "true"
- # - name: Upload Artifact
- # uses: actions/upload-artifact@v2
- # with:
- # name: Client - ${{ matrix.platform }}
- # path: ${{ github.workspace }}/${{ steps.build.outputs.build }}
diff --git a/.gitignore b/.gitignore
index 26147bf..f868dda 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,40 @@
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
-# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup
-# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,macos,linux,godot,executable,backup
+# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup,archives
+# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,macos,linux,godot,executable,backup,archives
+
+### Archives ###
+# It's better to unpack these files and commit the raw source because
+# git has its own built in compression methods.
+*.7z
+*.jar
+*.rar
+*.zip
+*.gz
+*.gzip
+*.tgz
+*.bzip
+*.bzip2
+*.bz2
+*.xz
+*.lzma
+*.cab
+*.xar
+
+# Packing-only formats
+*.iso
+*.tar
+
+# Package management formats
+*.dmg
+*.xpi
+*.gem
+*.egg
+*.deb
+*.rpm
+*.msi
+*.msm
+*.msp
+*.txz
### Backup ###
*.bak
@@ -16,7 +50,6 @@
*.com
*.exe
*.gadget
-*.jar
*.pif
*.vb
*.wsf
@@ -56,8 +89,7 @@ data_*/
.LSOverride
# Icon must end with two \r
-Icon
-
+Icon
# Thumbnails
._*
@@ -101,6 +133,12 @@ Temporary Items
.history
.ionide
+# Support for Project snippet scope
+.vscode/*.code-snippets
+
+# Ignore code-workspaces
+*.code-workspace
+
### Windows ###
# Windows thumbnail cache files
Thumbs.db
@@ -118,17 +156,13 @@ ehthumbs_vista.db
$RECYCLE.BIN/
# Windows Installer files
-*.cab
-*.msi
*.msix
-*.msm
-*.msp
# Windows shortcuts
*.lnk
-# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup
+# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,godot,executable,backup,archives
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
-!export_presets.cfg
\ No newline at end of file
+export/**
diff --git a/addons/beehave/blackboard.gd b/addons/beehave/blackboard.gd
deleted file mode 100644
index 4cff1ce..0000000
--- a/addons/beehave/blackboard.gd
+++ /dev/null
@@ -1,24 +0,0 @@
-extends Reference
-
-var blackboard = {}
-
-func set(key, value, blackboard_name = 'default'):
- if not blackboard.has(blackboard_name):
- blackboard[blackboard_name] = {}
-
- blackboard[blackboard_name][key] = value
-
-
-func get(key, default_value = null, blackboard_name = 'default'):
- if has(key, blackboard_name):
- return blackboard[blackboard_name].get(key, default_value)
- return default_value
-
-
-func has(key, blackboard_name = 'default'):
- return blackboard.has(blackboard_name) and blackboard[blackboard_name].has(key) and blackboard[blackboard_name][key] != null
-
-
-func erase(key, blackboard_name = 'default'):
- if blackboard.has(blackboard_name):
- blackboard[blackboard_name][key] = null
diff --git a/addons/beehave/icons/action.svg b/addons/beehave/icons/action.svg
deleted file mode 100644
index 7c224d5..0000000
--- a/addons/beehave/icons/action.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/action.svg.import b/addons/beehave/icons/action.svg.import
deleted file mode 100644
index ee085b3..0000000
--- a/addons/beehave/icons/action.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/action.svg-e8a91246d0ba9ba3cf84290d65648f06.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/action.svg"
-dest_files=[ "res://.import/action.svg-e8a91246d0ba9ba3cf84290d65648f06.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=true
-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
diff --git a/addons/beehave/icons/blackboard.svg b/addons/beehave/icons/blackboard.svg
deleted file mode 100644
index af009c6..0000000
--- a/addons/beehave/icons/blackboard.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/blackboard.svg.import b/addons/beehave/icons/blackboard.svg.import
deleted file mode 100644
index fd5d540..0000000
--- a/addons/beehave/icons/blackboard.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/blackboard.svg-18d4dfd4f6de558de250b67251ff1e69.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/blackboard.svg"
-dest_files=[ "res://.import/blackboard.svg-18d4dfd4f6de558de250b67251ff1e69.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=true
-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
diff --git a/addons/beehave/icons/category_bt.svg b/addons/beehave/icons/category_bt.svg
deleted file mode 100644
index ab92d03..0000000
--- a/addons/beehave/icons/category_bt.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/category_bt.svg.import b/addons/beehave/icons/category_bt.svg.import
deleted file mode 100644
index f8400a5..0000000
--- a/addons/beehave/icons/category_bt.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/category_bt.svg-8537bebd1c5f62dca3d7ee7f17efeed4.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/category_bt.svg"
-dest_files=[ "res://.import/category_bt.svg-8537bebd1c5f62dca3d7ee7f17efeed4.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=true
-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
diff --git a/addons/beehave/icons/category_composite.svg b/addons/beehave/icons/category_composite.svg
deleted file mode 100644
index 0f157de..0000000
--- a/addons/beehave/icons/category_composite.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/category_composite.svg.import b/addons/beehave/icons/category_composite.svg.import
deleted file mode 100644
index 75f2a39..0000000
--- a/addons/beehave/icons/category_composite.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/category_composite.svg-43f66e63a7ccfa5ac8ec6da0583b3246.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/category_composite.svg"
-dest_files=[ "res://.import/category_composite.svg-43f66e63a7ccfa5ac8ec6da0583b3246.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=true
-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
diff --git a/addons/beehave/icons/category_decorator.svg b/addons/beehave/icons/category_decorator.svg
deleted file mode 100644
index 02c0375..0000000
--- a/addons/beehave/icons/category_decorator.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/category_decorator.svg.import b/addons/beehave/icons/category_decorator.svg.import
deleted file mode 100644
index b4687fd..0000000
--- a/addons/beehave/icons/category_decorator.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/category_decorator.svg-79d598d6456f32724156248e09d6eaf3.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/category_decorator.svg"
-dest_files=[ "res://.import/category_decorator.svg-79d598d6456f32724156248e09d6eaf3.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=true
-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
diff --git a/addons/beehave/icons/condition.svg b/addons/beehave/icons/condition.svg
deleted file mode 100644
index 5d7bbb0..0000000
--- a/addons/beehave/icons/condition.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/condition.svg.import b/addons/beehave/icons/condition.svg.import
deleted file mode 100644
index 9e499d7..0000000
--- a/addons/beehave/icons/condition.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/condition.svg-57892684b10a64086f68c09c388b17e5.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/condition.svg"
-dest_files=[ "res://.import/condition.svg-57892684b10a64086f68c09c388b17e5.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=true
-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
diff --git a/addons/beehave/icons/fail.svg b/addons/beehave/icons/fail.svg
deleted file mode 100644
index d96bb98..0000000
--- a/addons/beehave/icons/fail.svg
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
diff --git a/addons/beehave/icons/fail.svg.import b/addons/beehave/icons/fail.svg.import
deleted file mode 100644
index 103fcc3..0000000
--- a/addons/beehave/icons/fail.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/fail.svg-85247bd8065819a11b971d222d3d43bb.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/fail.svg"
-dest_files=[ "res://.import/fail.svg-85247bd8065819a11b971d222d3d43bb.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=true
-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
diff --git a/addons/beehave/icons/inverter.svg b/addons/beehave/icons/inverter.svg
deleted file mode 100644
index 45b8e97..0000000
--- a/addons/beehave/icons/inverter.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/inverter.svg.import b/addons/beehave/icons/inverter.svg.import
deleted file mode 100644
index a3b53d7..0000000
--- a/addons/beehave/icons/inverter.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/inverter.svg-1f1b976d95de42c4ad99a92fa9a6c5d0.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/inverter.svg"
-dest_files=[ "res://.import/inverter.svg-1f1b976d95de42c4ad99a92fa9a6c5d0.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=true
-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
diff --git a/addons/beehave/icons/limiter.svg b/addons/beehave/icons/limiter.svg
deleted file mode 100644
index 2d6bbb6..0000000
--- a/addons/beehave/icons/limiter.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/limiter.svg.import b/addons/beehave/icons/limiter.svg.import
deleted file mode 100644
index 8a02cf0..0000000
--- a/addons/beehave/icons/limiter.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/limiter.svg-b4c7646605c46f53c5e403fe21d8f584.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/limiter.svg"
-dest_files=[ "res://.import/limiter.svg-b4c7646605c46f53c5e403fe21d8f584.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=true
-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
diff --git a/addons/beehave/icons/selector.svg b/addons/beehave/icons/selector.svg
deleted file mode 100644
index 01b107a..0000000
--- a/addons/beehave/icons/selector.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/selector.svg.import b/addons/beehave/icons/selector.svg.import
deleted file mode 100644
index 05bed9c..0000000
--- a/addons/beehave/icons/selector.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/selector.svg-78bccfc448bd1676b5a29bfde4b08e5b.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/selector.svg"
-dest_files=[ "res://.import/selector.svg-78bccfc448bd1676b5a29bfde4b08e5b.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=true
-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
diff --git a/addons/beehave/icons/selector_star.svg b/addons/beehave/icons/selector_star.svg
deleted file mode 100644
index e112337..0000000
--- a/addons/beehave/icons/selector_star.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/addons/beehave/icons/selector_star.svg.import b/addons/beehave/icons/selector_star.svg.import
deleted file mode 100644
index 2b6ac98..0000000
--- a/addons/beehave/icons/selector_star.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/selector_star.svg-368af7abfb9842c3f4258786871d1f03.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/selector_star.svg"
-dest_files=[ "res://.import/selector_star.svg-368af7abfb9842c3f4258786871d1f03.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=false
-svg/scale=1.0
diff --git a/addons/beehave/icons/sequencer.svg b/addons/beehave/icons/sequencer.svg
deleted file mode 100644
index 1304ab0..0000000
--- a/addons/beehave/icons/sequencer.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/sequencer.svg.import b/addons/beehave/icons/sequencer.svg.import
deleted file mode 100644
index c4358f4..0000000
--- a/addons/beehave/icons/sequencer.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/sequencer.svg-a7b0e1cc6b00c0067836f9a81d0b2f9b.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/sequencer.svg"
-dest_files=[ "res://.import/sequencer.svg-a7b0e1cc6b00c0067836f9a81d0b2f9b.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=true
-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
diff --git a/addons/beehave/icons/sequencer_star.svg b/addons/beehave/icons/sequencer_star.svg
deleted file mode 100644
index 66efd5c..0000000
--- a/addons/beehave/icons/sequencer_star.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/addons/beehave/icons/sequencer_star.svg.import b/addons/beehave/icons/sequencer_star.svg.import
deleted file mode 100644
index 6bfbf77..0000000
--- a/addons/beehave/icons/sequencer_star.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/sequencer_star.svg-2385cbba0c38b4d4ec43e0996f8a3493.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/sequencer_star.svg"
-dest_files=[ "res://.import/sequencer_star.svg-2385cbba0c38b4d4ec43e0996f8a3493.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=false
-svg/scale=1.0
diff --git a/addons/beehave/icons/succeed.svg b/addons/beehave/icons/succeed.svg
deleted file mode 100644
index d8c5133..0000000
--- a/addons/beehave/icons/succeed.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/succeed.svg.import b/addons/beehave/icons/succeed.svg.import
deleted file mode 100644
index 0b98563..0000000
--- a/addons/beehave/icons/succeed.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/succeed.svg-c70f0a6f3d9b2864e4771942f0762307.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/succeed.svg"
-dest_files=[ "res://.import/succeed.svg-c70f0a6f3d9b2864e4771942f0762307.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=true
-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
diff --git a/addons/beehave/icons/tree.svg b/addons/beehave/icons/tree.svg
deleted file mode 100644
index 26dac9f..0000000
--- a/addons/beehave/icons/tree.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/addons/beehave/icons/tree.svg.import b/addons/beehave/icons/tree.svg.import
deleted file mode 100644
index 028a5a1..0000000
--- a/addons/beehave/icons/tree.svg.import
+++ /dev/null
@@ -1,35 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/tree.svg-c0b20ed88b2fe300c0296f7236049076.stex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://addons/beehave/icons/tree.svg"
-dest_files=[ "res://.import/tree.svg-c0b20ed88b2fe300c0296f7236049076.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=true
-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
diff --git a/addons/beehave/nodes/beehave_node.gd b/addons/beehave/nodes/beehave_node.gd
deleted file mode 100644
index d52e67b..0000000
--- a/addons/beehave/nodes/beehave_node.gd
+++ /dev/null
@@ -1,8 +0,0 @@
-extends BeehaveTree
-
-class_name BeehaveNode, "../icons/action.svg"
-
-enum { SUCCESS, FAILURE, RUNNING }
-
-func tick(actor, blackboard):
- pass
diff --git a/addons/beehave/nodes/beehave_root.gd b/addons/beehave/nodes/beehave_root.gd
deleted file mode 100644
index 5201cc7..0000000
--- a/addons/beehave/nodes/beehave_root.gd
+++ /dev/null
@@ -1,84 +0,0 @@
-extends BeehaveTree
-
-class_name BeehaveRoot, "../icons/tree.svg"
-
-const Blackboard = preload("../blackboard.gd")
-const SUCCESS = 0
-const FAILURE = 1
-const RUNNING = 2
-
-enum ProcessMode {
- PHYSICS_PROCESS,
- IDLE,
- MANUAL
-}
-
-export (ProcessMode) var process_mode = ProcessMode.PHYSICS_PROCESS setget set_process_mode
-export (bool) var enabled = true
-
-export (NodePath) var actor_node_path
-
-var actor : Node
-
-onready var blackboard = Blackboard.new()
-
-func _ready():
- if self.get_child_count() != 1:
- push_error("Beehave error: Root %s should have one child (NodePath: %s)" % [self.name, self.get_path()])
- disable()
- return
-
- actor = get_parent()
- if actor_node_path:
- actor = get_node(actor_node_path)
-
- set_process_mode(self.process_mode)
-
-func _process(delta):
- tick(delta)
-
-func _physics_process(delta):
- tick(delta)
-
-func tick(delta):
- blackboard.set("delta", delta)
-
- var status = self.get_child(0).tick(actor, blackboard)
-
- if status != RUNNING:
- blackboard.set("running_action", null)
-
-func get_running_action():
- if blackboard.has("running_action"):
- return blackboard.get("running_action")
- return null
-
-func get_last_condition():
- if blackboard.has("last_condition"):
- return blackboard.get("last_condition")
- return null
-
-func get_last_condition_status():
- if blackboard.has("last_condition_status"):
- var status = blackboard.get("last_condition_status")
- if status == SUCCESS:
- return "SUCCESS"
- elif status == FAILURE:
- return "FAILURE"
- else:
- return "RUNNING"
- return ""
-
-func enable():
- self.enabled = true
- set_process_mode(self.process_mode)
-
-func disable():
- self.enabled = false
- set_process(self.enabled)
- set_physics_process(self.enabled)
-
-func set_process_mode(value):
- process_mode = value
- set_process(process_mode == ProcessMode.IDLE)
- set_physics_process(process_mode == ProcessMode.PHYSICS_PROCESS)
diff --git a/addons/beehave/nodes/beehave_tree.gd b/addons/beehave/nodes/beehave_tree.gd
deleted file mode 100644
index 9def663..0000000
--- a/addons/beehave/nodes/beehave_tree.gd
+++ /dev/null
@@ -1,3 +0,0 @@
-extends Node
-
-class_name BeehaveTree
diff --git a/addons/beehave/nodes/composites/composite.gd b/addons/beehave/nodes/composites/composite.gd
deleted file mode 100644
index 5a691f9..0000000
--- a/addons/beehave/nodes/composites/composite.gd
+++ /dev/null
@@ -1,8 +0,0 @@
-extends BeehaveNode
-
-class_name Composite, "../../icons/category_composite.svg"
-
-
-func _ready():
- if self.get_child_count() < 1:
- push_error("BehaviorTree Error: Composite %s should have at least one child (NodePath: %s)" % [self.name, self.get_path()])
diff --git a/addons/beehave/nodes/composites/selector.gd b/addons/beehave/nodes/composites/selector.gd
deleted file mode 100644
index f78be66..0000000
--- a/addons/beehave/nodes/composites/selector.gd
+++ /dev/null
@@ -1,18 +0,0 @@
-extends Composite
-
-class_name SelectorComposite, "../../icons/selector.svg"
-
-func tick(actor, blackboard):
- for c in get_children():
- var response = c.tick(actor, blackboard)
-
- if c is ConditionLeaf:
- blackboard.set("last_condition", c)
- blackboard.set("last_condition_status", response)
-
- if response != FAILURE:
- if c is ActionLeaf and response == RUNNING:
- blackboard.set("running_action", c)
- return response
-
- return FAILURE
diff --git a/addons/beehave/nodes/composites/selector_star.gd b/addons/beehave/nodes/composites/selector_star.gd
deleted file mode 100644
index 0a272b5..0000000
--- a/addons/beehave/nodes/composites/selector_star.gd
+++ /dev/null
@@ -1,33 +0,0 @@
-# Special implementation of a selector that will
-# "wait" for running nodes and will not re-attempt
-# to execute previous nodes until that node is either
-# FAILED or SUCCEEDED
-extends Composite
-
-class_name SelectorStarComposite, "../../icons/selector_star.svg"
-
-
-var last_execution_index = 0
-
-func tick(actor, blackboard):
- for c in get_children():
- if c.get_index() < last_execution_index:
- continue
-
- var response = c.tick(actor, blackboard)
-
- if c is ConditionLeaf:
- blackboard.set("last_condition", c)
- blackboard.set("last_condition_status", response)
-
- if response != FAILURE:
- if c is ActionLeaf and response == RUNNING:
- blackboard.set("running_action", c)
- if response == SUCCESS:
- last_execution_index = 0
- return response
- else:
- last_execution_index += 1
-
- last_execution_index = 0
- return FAILURE
diff --git a/addons/beehave/nodes/composites/sequence.gd b/addons/beehave/nodes/composites/sequence.gd
deleted file mode 100644
index 52d401d..0000000
--- a/addons/beehave/nodes/composites/sequence.gd
+++ /dev/null
@@ -1,18 +0,0 @@
-extends Composite
-
-class_name SequenceComposite, "../../icons/sequencer.svg"
-
-func tick(actor, blackboard):
- for c in get_children():
- var response = c.tick(actor, blackboard)
-
- if c is ConditionLeaf:
- blackboard.set("last_condition", c)
- blackboard.set("last_condition_status", response)
-
- if response != SUCCESS:
- if c is ActionLeaf and response == RUNNING:
- blackboard.set("running_action", c)
- return response
-
- return SUCCESS
diff --git a/addons/beehave/nodes/composites/sequence_star.gd b/addons/beehave/nodes/composites/sequence_star.gd
deleted file mode 100644
index f0ae03f..0000000
--- a/addons/beehave/nodes/composites/sequence_star.gd
+++ /dev/null
@@ -1,35 +0,0 @@
-# Special implementation of sequencer who will execute
-# successful nodes only once until all nodes were successful
-
-extends Composite
-
-class_name SequenceStarComposite, "../../icons/sequencer_star.svg"
-
-var successful_index = 0
-
-func tick(actor, blackboard):
- for c in get_children():
- if c.get_index() < successful_index:
- continue
-
- var response = c.tick(actor, blackboard)
-
- if c is ConditionLeaf:
- blackboard.set("last_condition", c)
- blackboard.set("last_condition_status", response)
-
- if response != SUCCESS:
- if response == FAILURE:
- successful_index = 0
- if c is ActionLeaf and response == RUNNING:
- blackboard.set("running_action", c)
- return response
- else:
- successful_index += 1
-
- if successful_index == get_child_count():
- successful_index = 0
- return SUCCESS
- else:
- successful_index = 0
- return FAILURE
diff --git a/addons/beehave/nodes/decorators/decorator.gd b/addons/beehave/nodes/decorators/decorator.gd
deleted file mode 100644
index b0568d5..0000000
--- a/addons/beehave/nodes/decorators/decorator.gd
+++ /dev/null
@@ -1,8 +0,0 @@
-extends BeehaveNode
-
-class_name Decorator, "../../icons/category_decorator.svg"
-
-
-func _ready():
- if self.get_child_count() != 1:
- push_error("Beehave Error: Decorator %s should have only one child (NodePath: %s)" % [self.name, self.get_path()])
diff --git a/addons/beehave/nodes/decorators/failer.gd b/addons/beehave/nodes/decorators/failer.gd
deleted file mode 100644
index 15dfef4..0000000
--- a/addons/beehave/nodes/decorators/failer.gd
+++ /dev/null
@@ -1,11 +0,0 @@
-extends Decorator
-
-class_name AlwaysFailDecorator, "../../icons/fail.svg"
-
-
-func tick(action, blackboard):
- for c in get_children():
- var response = c.tick(action, blackboard)
- if response == RUNNING:
- return RUNNING
- return FAILURE
diff --git a/addons/beehave/nodes/decorators/inverter.gd b/addons/beehave/nodes/decorators/inverter.gd
deleted file mode 100644
index e1e70ea..0000000
--- a/addons/beehave/nodes/decorators/inverter.gd
+++ /dev/null
@@ -1,17 +0,0 @@
-extends Decorator
-
-class_name InverterDecorator, "../../icons/inverter.svg"
-
-
-func tick(action, blackboard):
- for c in get_children():
- var response = c.tick(action, blackboard)
-
- if response == SUCCESS:
- return FAILURE
- if response == FAILURE:
- return SUCCESS
-
- if c is Leaf and response == RUNNING:
- blackboard.set("running_action", c)
- return RUNNING
diff --git a/addons/beehave/nodes/decorators/limiter.gd b/addons/beehave/nodes/decorators/limiter.gd
deleted file mode 100644
index 725f784..0000000
--- a/addons/beehave/nodes/decorators/limiter.gd
+++ /dev/null
@@ -1,19 +0,0 @@
-extends Decorator
-
-class_name LimiterDecorator, "../../icons/limiter.svg"
-
-onready var cache_key = 'limiter_%s' % self.get_instance_id()
-
-export (float) var max_count = 0
-
-func tick(actor, blackboard):
- var current_count = blackboard.get(cache_key)
-
- if current_count == null:
- current_count = 0
-
- if current_count <= max_count:
- blackboard.set(cache_key, current_count + 1)
- return self.get_child(0).tick(actor, blackboard)
- else:
- return FAILED
diff --git a/addons/beehave/nodes/decorators/succeeder.gd b/addons/beehave/nodes/decorators/succeeder.gd
deleted file mode 100644
index 1a7bacf..0000000
--- a/addons/beehave/nodes/decorators/succeeder.gd
+++ /dev/null
@@ -1,11 +0,0 @@
-extends Decorator
-
-class_name AlwaysSucceedDecorator, "../../icons/succeed.svg"
-
-
-func tick(action, blackboard):
- for c in get_children():
- var response = c.tick(action, blackboard)
- if response == RUNNING:
- return RUNNING
- return SUCCESS
diff --git a/addons/beehave/nodes/leaves/action.gd b/addons/beehave/nodes/leaves/action.gd
deleted file mode 100644
index a30041d..0000000
--- a/addons/beehave/nodes/leaves/action.gd
+++ /dev/null
@@ -1,3 +0,0 @@
-extends Leaf
-
-class_name ActionLeaf, "../../icons/action.svg"
diff --git a/addons/beehave/nodes/leaves/condition.gd b/addons/beehave/nodes/leaves/condition.gd
deleted file mode 100644
index d91ff37..0000000
--- a/addons/beehave/nodes/leaves/condition.gd
+++ /dev/null
@@ -1,3 +0,0 @@
-extends Leaf
-
-class_name ConditionLeaf, "../../icons/condition.svg"
diff --git a/addons/beehave/nodes/leaves/leaf.gd b/addons/beehave/nodes/leaves/leaf.gd
deleted file mode 100644
index 503fa1b..0000000
--- a/addons/beehave/nodes/leaves/leaf.gd
+++ /dev/null
@@ -1,3 +0,0 @@
-extends BeehaveNode
-
-class_name Leaf, "../../icons/action.svg"
diff --git a/addons/beehave/plugin.cfg b/addons/beehave/plugin.cfg
deleted file mode 100644
index 7a1b19b..0000000
--- a/addons/beehave/plugin.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-[plugin]
-
-name="Beehave"
-description="🐝 Behaviour Tree addon for Godot Engine"
-author="bitbrain"
-version="1.2.0"
-script="plugin.gd"
diff --git a/addons/beehave/plugin.gd b/addons/beehave/plugin.gd
deleted file mode 100644
index d670e1b..0000000
--- a/addons/beehave/plugin.gd
+++ /dev/null
@@ -1,5 +0,0 @@
-tool
-extends EditorPlugin
-
-func _init():
- print("Beehave initialized!")
diff --git a/addons/godot-version-management/LICENSE b/addons/godot-version-management/LICENSE
deleted file mode 100644
index 743520c..0000000
--- a/addons/godot-version-management/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Tomek
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
diff --git a/addons/godot-version-management/README.md b/addons/godot-version-management/README.md
deleted file mode 100644
index 40a0123..0000000
--- a/addons/godot-version-management/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# Godot Version Manager
-
-
-
-This addon is for developpers that want a centralized place for version naming / build number and then display it in game.
-
-It allow you to configure version and build in project settings.
-
-These configurations are synchronized to all existing export of your project.
-
-Moreover configurations can be loaded for in game display.
-
-## How to install it
-
-You can find this addon in Godot AssetLibrary
-See the Godot Addon install section : https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html
-
-## How to use it for exports
-
-Once the addon activated it add two entry in your project configuration:
-
-- Application / Config / Version as String (application/config/version default to 0.0.1)
-- Application / Config / Build as Integer (application/config/build default to 1)
-
-You can change the version and the build numbers.
-It will update all your exports versions value to the project config value.
-Then you need to reload the project (Project / Reload current project).
-
-See below section to know why you need to reload project.
-
-For Android exports:
-* version is version/name
-* build is version/code
-
-For iOS and MacOS exports:
-* version is application/short_version
-* build is application/version
-
-For Windows Desktop exports:
-* version is application/file_version and application/product_version
-
-For HTML5 and UWP exports no versions specified.
-
-## How to use it for in game display
-
-The version and build numbers can be accessed for in game use like that:
-
-
-```GDScript
- # To get version string
- var version = ProjectSettings.get_setting("application/config/version")
- # To get build number
- var build = ProjectSettings.get_setting("application/config/build")
-```
-
-
-
-
-## Why I need to reload project ?
-
-The GodotVersionManager addon update the export-presets.cfg file.
-
-Because of Godot keep in memory ExportsSettings and do not reload it from export-presets.cfg file you will need to reload your project.
-
-When project is loaded Godot load in memory the export-presets.cfg .
-
-## Support Me
-
-You to buy me a coffee ?
-
diff --git a/addons/godot-version-management/godot_version_manager.gd b/addons/godot-version-management/godot_version_manager.gd
deleted file mode 100644
index d7fea72..0000000
--- a/addons/godot-version-management/godot_version_manager.gd
+++ /dev/null
@@ -1,78 +0,0 @@
-# By Erasor
-tool
-extends EditorPlugin
-
-const PLUGIN_NAME = "Godot-Version-Manager"
-const DEBUG = true
-# Use same name as https://github.com/godotengine/godot/pull/35555
-const PROJECT_VERSION_SETTING = "application/config/version"
-const PROJECT_BUILD_SETTING = "application/config/build"
-const EXPORT_PRESETS_FILE = "res://export_presets.cfg"
-var current_version
-var current_build
-
-func _enter_tree():
- if not ProjectSettings.has_setting(PROJECT_VERSION_SETTING):
- ProjectSettings.set_setting(PROJECT_VERSION_SETTING, "0.0.1")
- if not ProjectSettings.has_setting(PROJECT_BUILD_SETTING):
- ProjectSettings.set_setting(PROJECT_BUILD_SETTING, 1)
- current_version = ProjectSettings.get_setting(PROJECT_VERSION_SETTING)
- current_build = ProjectSettings.get_setting(PROJECT_BUILD_SETTING)
-
-
-func _exit_tree():
- # Do not remove the verson config, may conflict with https://github.com/godotengine/godot/pull/35555
- pass
-
-
-func apply_changes():
- _update_export_presets()
-
-
-func save_external_data():
- _update_export_presets()
-
-
-func _update_export_presets():
- # If config version changed, update all exports
- if ProjectSettings.get_setting(PROJECT_VERSION_SETTING) != current_version:
- var export_config: ConfigFile = ConfigFile.new()
- var err = export_config.load(EXPORT_PRESETS_FILE)
- if err == OK:
- # Loop limited to 100 exports
- for i in range(0, 100):
- var section = "preset." + str(i)
- if export_config.has_section(section):
- plugin_log("Update Export " + export_config.get_value(section, "platform"))
- # Update Android exports configs
- if export_config.get_value(section, "platform") == "Android":
- export_config.set_value(section + ".options", 'version/name', ProjectSettings.get_setting(PROJECT_VERSION_SETTING))
- export_config.set_value(section + ".options", 'version/code', ProjectSettings.get_setting(PROJECT_BUILD_SETTING))
- if export_config.get_value(section, "platform") == "iOS" or export_config.get_value(section, "platform") == "Mac OSX":
- export_config.set_value(section + ".options", 'application/short_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING))
- export_config.set_value(section + ".options", 'application/version', ProjectSettings.get_setting(PROJECT_BUILD_SETTING))
- if export_config.get_value(section, "platform") == "UWP":
- # TODO parsing of version to minor/major
- pass
- if export_config.get_value(section, "platform") == "Windows Desktop":
- export_config.set_value(section + ".options", 'application/file_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING))
- export_config.set_value(section + ".options", 'application/product_version', ProjectSettings.get_setting(PROJECT_VERSION_SETTING))
- else:
- break
- err = export_config.save(EXPORT_PRESETS_FILE)
- ProjectSettings.save()
- if err == OK:
- plugin_log("All exports updated")
- else:
- plugin_log("Error saving " + EXPORT_PRESETS_FILE + ", exports not updated")
- else:
- plugin_log('Error open ' + EXPORT_PRESETS_FILE)
-
-
-func plugin_log(message):
- if (DEBUG):
- var time : Dictionary = OS.get_datetime()
- var date_string : String = "%02d:%02d" % [time.hour, time.minute]
- print(date_string, " - ", PLUGIN_NAME, " - ", message)
-
-
diff --git a/addons/godot-version-management/plugin.cfg b/addons/godot-version-management/plugin.cfg
deleted file mode 100644
index 52c8d5a..0000000
--- a/addons/godot-version-management/plugin.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-[plugin]
-
-name="Godot-Version-Manager"
-description="Godot plugin to manage versions for exports.
-It centralize the version number in project."
-author="Erasor"
-version="1.0.0"
-script="godot_version_manager.gd"
diff --git a/export_presets.cfg b/export_presets.cfg
deleted file mode 100644
index d740d50..0000000
--- a/export_presets.cfg
+++ /dev/null
@@ -1,141 +0,0 @@
-[preset.0]
-
-name="windows"
-platform="Windows Desktop"
-runnable=true
-custom_features=""
-export_filter="all_resources"
-include_filter=""
-exclude_filter=""
-export_path=""
-script_export_mode=1
-script_encryption_key=""
-
-[preset.0.options]
-
-custom_template/debug=""
-custom_template/release=""
-binary_format/64_bits=true
-binary_format/embed_pck=false
-texture_format/bptc=false
-texture_format/s3tc=true
-texture_format/etc=false
-texture_format/etc2=false
-texture_format/no_bptc_fallbacks=true
-codesign/enable=false
-codesign/identity_type=0
-codesign/identity=""
-codesign/password=""
-codesign/timestamp=true
-codesign/timestamp_server_url=""
-codesign/digest_algorithm=1
-codesign/description=""
-codesign/custom_options=PoolStringArray( )
-application/modify_resources=true
-application/icon=""
-application/file_version=""
-application/product_version=""
-application/company_name=""
-application/product_name=""
-application/file_description=""
-application/copyright=""
-application/trademarks=""
-
-[preset.1]
-
-name="mac"
-platform="Mac OSX"
-runnable=true
-custom_features=""
-export_filter="all_resources"
-include_filter=""
-exclude_filter=""
-export_path=""
-script_export_mode=1
-script_encryption_key=""
-
-[preset.1.options]
-
-custom_template/debug=""
-custom_template/release=""
-application/name=""
-application/info="Made with Godot Engine"
-application/icon=""
-application/identifier="com.tonybark.mysim"
-application/signature=""
-application/app_category="Simulation-games"
-application/short_version="1.0"
-application/version="1.0"
-application/copyright=""
-display/high_res=false
-privacy/microphone_usage_description=""
-privacy/camera_usage_description=""
-privacy/location_usage_description=""
-privacy/address_book_usage_description=""
-privacy/calendar_usage_description=""
-privacy/photos_library_usage_description=""
-privacy/desktop_folder_usage_description=""
-privacy/documents_folder_usage_description=""
-privacy/downloads_folder_usage_description=""
-privacy/network_volumes_usage_description=""
-privacy/removable_volumes_usage_description=""
-codesign/enable=true
-codesign/identity=""
-codesign/timestamp=true
-codesign/hardened_runtime=true
-codesign/replace_existing_signature=true
-codesign/entitlements/custom_file=""
-codesign/entitlements/allow_jit_code_execution=false
-codesign/entitlements/allow_unsigned_executable_memory=false
-codesign/entitlements/allow_dyld_environment_variables=false
-codesign/entitlements/disable_library_validation=false
-codesign/entitlements/audio_input=false
-codesign/entitlements/camera=false
-codesign/entitlements/location=false
-codesign/entitlements/address_book=false
-codesign/entitlements/calendars=false
-codesign/entitlements/photos_library=false
-codesign/entitlements/apple_events=false
-codesign/entitlements/debugging=false
-codesign/entitlements/app_sandbox/enabled=false
-codesign/entitlements/app_sandbox/network_server=false
-codesign/entitlements/app_sandbox/network_client=false
-codesign/entitlements/app_sandbox/device_usb=false
-codesign/entitlements/app_sandbox/device_bluetooth=false
-codesign/entitlements/app_sandbox/files_downloads=0
-codesign/entitlements/app_sandbox/files_pictures=0
-codesign/entitlements/app_sandbox/files_music=0
-codesign/entitlements/app_sandbox/files_movies=0
-codesign/custom_options=PoolStringArray( )
-notarization/enable=false
-notarization/apple_id_name=""
-notarization/apple_id_password=""
-notarization/apple_team_id=""
-texture_format/s3tc=true
-texture_format/etc=false
-texture_format/etc2=false
-
-[preset.2]
-
-name="linux"
-platform="Linux/X11"
-runnable=true
-custom_features=""
-export_filter="all_resources"
-include_filter=""
-exclude_filter=""
-export_path=""
-script_export_mode=1
-script_encryption_key=""
-
-[preset.2.options]
-
-custom_template/debug=""
-custom_template/release=""
-binary_format/64_bits=true
-binary_format/embed_pck=false
-texture_format/bptc=false
-texture_format/s3tc=true
-texture_format/etc=false
-texture_format/etc2=false
-texture_format/no_bptc_fallbacks=true
diff --git a/project.godot b/project.godot
index 40e806f..9db388f 100644
--- a/project.godot
+++ b/project.godot
@@ -8,106 +8,6 @@
config_version=4
-_global_script_classes=[ {
-"base": "Leaf",
-"class": "ActionLeaf",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/leaves/action.gd"
-}, {
-"base": "Decorator",
-"class": "AlwaysFailDecorator",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/decorators/failer.gd"
-}, {
-"base": "Decorator",
-"class": "AlwaysSucceedDecorator",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/decorators/succeeder.gd"
-}, {
-"base": "BeehaveTree",
-"class": "BeehaveNode",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/beehave_node.gd"
-}, {
-"base": "BeehaveTree",
-"class": "BeehaveRoot",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/beehave_root.gd"
-}, {
-"base": "Node",
-"class": "BeehaveTree",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/beehave_tree.gd"
-}, {
-"base": "BeehaveNode",
-"class": "Composite",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/composites/composite.gd"
-}, {
-"base": "Leaf",
-"class": "ConditionLeaf",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/leaves/condition.gd"
-}, {
-"base": "BeehaveNode",
-"class": "Decorator",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/decorators/decorator.gd"
-}, {
-"base": "Decorator",
-"class": "InverterDecorator",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/decorators/inverter.gd"
-}, {
-"base": "BeehaveNode",
-"class": "Leaf",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/leaves/leaf.gd"
-}, {
-"base": "Decorator",
-"class": "LimiterDecorator",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/decorators/limiter.gd"
-}, {
-"base": "Composite",
-"class": "SelectorComposite",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/composites/selector.gd"
-}, {
-"base": "Composite",
-"class": "SelectorStarComposite",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/composites/selector_star.gd"
-}, {
-"base": "Composite",
-"class": "SequenceComposite",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/composites/sequence.gd"
-}, {
-"base": "Composite",
-"class": "SequenceStarComposite",
-"language": "GDScript",
-"path": "res://addons/beehave/nodes/composites/sequence_star.gd"
-} ]
-_global_script_class_icons={
-"ActionLeaf": "res://addons/beehave/icons/action.svg",
-"AlwaysFailDecorator": "res://addons/beehave/icons/fail.svg",
-"AlwaysSucceedDecorator": "res://addons/beehave/icons/succeed.svg",
-"BeehaveNode": "res://addons/beehave/icons/action.svg",
-"BeehaveRoot": "res://addons/beehave/icons/tree.svg",
-"BeehaveTree": "",
-"Composite": "res://addons/beehave/icons/category_composite.svg",
-"ConditionLeaf": "res://addons/beehave/icons/condition.svg",
-"Decorator": "res://addons/beehave/icons/category_decorator.svg",
-"InverterDecorator": "res://addons/beehave/icons/inverter.svg",
-"Leaf": "res://addons/beehave/icons/action.svg",
-"LimiterDecorator": "res://addons/beehave/icons/limiter.svg",
-"SelectorComposite": "res://addons/beehave/icons/selector.svg",
-"SelectorStarComposite": "res://addons/beehave/icons/selector_star.svg",
-"SequenceComposite": "res://addons/beehave/icons/sequencer.svg",
-"SequenceStarComposite": "res://addons/beehave/icons/sequencer_star.svg"
-}
-
[application]
config/name="City Limits"
@@ -115,8 +15,6 @@ run/main_scene="res://scenes/Game.tscn"
config/icon="res://icon.png"
config/macos_native_icon="res://icon.icns"
config/windows_native_icon="res://icon.ico"
-config/version="0.0.1"
-config/build=1000
[autoload]
@@ -134,7 +32,7 @@ window/stretch/aspect="keep"
[editor_plugins]
-enabled=PoolStringArray( "res://addons/beehave/plugin.cfg", "res://addons/godot-version-management/plugin.cfg" )
+enabled=PoolStringArray( )
[gdnative]
@@ -168,8 +66,8 @@ ui_down={
}
ui_cheats={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":true,"meta":true,"command":true,"pressed":false,"scancode":67,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":true,"command":true,"pressed":false,"scancode":88,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":false,"meta":true,"command":true,"pressed":false,"scancode":67,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":true,"command":true,"pressed":false,"scancode":88,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
diff --git a/scenes/deparments/CoalPlant.tscn b/scenes/deparments/CoalPlant.tscn
index 6729fa6..f072987 100644
--- a/scenes/deparments/CoalPlant.tscn
+++ b/scenes/deparments/CoalPlant.tscn
@@ -1,10 +1,7 @@
-[gd_scene load_steps=8 format=2]
+[gd_scene load_steps=5 format=2]
-[ext_resource path="res://scripts/simtactics/turn_on.gd" type="Script" id=1]
+[ext_resource path="res://scripts/power_station.gd" type="Script" id=1]
[ext_resource path="res://assets/coal.png" type="Texture" id=2]
-[ext_resource path="res://addons/beehave/nodes/composites/sequence.gd" type="Script" id=3]
-[ext_resource path="res://scripts/simtactics/zone.gd" type="Script" id=4]
-[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=6]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 32.2297, 31.8602 )
@@ -29,19 +26,9 @@ tracks/0/keys = {
[node name="PowerStation" type="KinematicBody2D"]
input_pickable = true
-
-[node name="BeehaveRoot" type="Node" parent="."]
-script = ExtResource( 6 )
-
-[node name="SequenceComposite" type="Node" parent="BeehaveRoot"]
-script = ExtResource( 3 )
-
-[node name="TurnOn" type="Node" parent="BeehaveRoot/SequenceComposite"]
script = ExtResource( 1 )
-
-[node name="ActionLeaf" type="Node" parent="BeehaveRoot/SequenceComposite"]
-script = ExtResource( 4 )
-zone_texture = "res://assets/res_houses.png"
+income = 0
+expense = 250
[node name="Quarters" type="Timer" parent="."]
wait_time = 10.0
@@ -57,3 +44,5 @@ playback_speed = 5.0
anims/Animante = SubResource( 2 )
[node name="RayCast2D" type="RayCast2D" parent="."]
+
+[connection signal="timeout" from="Quarters" to="." method="_on_Quarters_timeout"]
diff --git a/scenes/deparments/Zone.tscn b/scenes/deparments/Zone.tscn
index 7899a9a..f37acc0 100644
--- a/scenes/deparments/Zone.tscn
+++ b/scenes/deparments/Zone.tscn
@@ -1,17 +1,14 @@
-[gd_scene load_steps=9 format=2]
+[gd_scene load_steps=5 format=2]
[ext_resource path="res://scripts/zone.gd" type="Script" id=1]
[ext_resource path="res://assets/res_zones.png" type="Texture" id=2]
-[ext_resource path="res://scripts/simtactics/has_power.gd" type="Script" id=4]
-[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=5]
-[ext_resource path="res://addons/beehave/nodes/composites/selector.gd" type="Script" id=7]
[sub_resource type="Animation" id=2]
resource_name = "Animante"
length = 5.0
step = 1.0
tracks/0/type = "value"
-tracks/0/path = NodePath("Sprite:frame")
+tracks/0/path = NodePath("../Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
@@ -20,22 +17,7 @@ tracks/0/keys = {
"times": PoolRealArray( 0, 1, 2, 3, 4 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
"update": 1,
-"values": [ 0, 1, 2, 3, 4 ]
-}
-
-[sub_resource type="Animation" id=4]
-length = 0.001
-tracks/0/type = "value"
-tracks/0/path = NodePath("Sprite:frame")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/keys = {
-"times": PoolRealArray( 0 ),
-"transitions": PoolRealArray( 1 ),
-"update": 0,
-"values": [ 1 ]
+"values": [ 1, 2, 3, 4, 6 ]
}
[sub_resource type="CircleShape2D" id=3]
@@ -44,26 +26,15 @@ radius = 34.955
[node name="Zone" type="Area2D"]
script = ExtResource( 1 )
-[node name="Sprite" type="Sprite" parent="."]
-texture = ExtResource( 2 )
-vframes = 19
-frame = 1
-
-[node name="BeehaveRoot" type="Node" parent="."]
-script = ExtResource( 5 )
-
-[node name="SelectorComposite" type="Node" parent="BeehaveRoot"]
-script = ExtResource( 7 )
-
-[node name="HasPower" type="Node" parent="BeehaveRoot/SelectorComposite"]
-script = ExtResource( 4 )
-
[node name="Quarters" type="Timer" parent="."]
wait_time = 10.0
+[node name="Sprite" type="Sprite" parent="."]
+texture = ExtResource( 2 )
+vframes = 19
+
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Animante = SubResource( 2 )
-anims/RESET = SubResource( 4 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 3 )
diff --git a/scenes/game.tscn b/scenes/game.tscn
index e471677..217a1a7 100644
--- a/scenes/game.tscn
+++ b/scenes/game.tscn
@@ -1,7 +1,6 @@
-[gd_scene load_steps=50 format=2]
+[gd_scene load_steps=45 format=2]
[ext_resource path="res://scenes/maps/MapOne.tscn" type="PackedScene" id=1]
-[ext_resource path="res://addons/beehave/nodes/composites/selector.gd" type="Script" id=2]
[ext_resource path="res://assets/symbols/fontawesome/population.svg" type="Texture" id=3]
[ext_resource path="res://scenes/windows/Advisor.tscn" type="PackedScene" id=4]
[ext_resource path="res://assets/ui/iccom.png" type="Texture" id=5]
@@ -45,22 +44,16 @@
[ext_resource path="res://assets/symbols/fontawesome/envelope.svg" type="Texture" id=43]
[ext_resource path="res://scenes/windows/Ordinance.tscn" type="PackedScene" id=44]
[ext_resource path="res://scripts/ticker.gd" type="Script" id=45]
-[ext_resource path="res://addons/beehave/nodes/beehave_root.gd" type="Script" id=46]
-[ext_resource path="res://scenes/deparments/CoalPlant.tscn" type="PackedScene" id=47]
-[ext_resource path="res://addons/beehave/nodes/beehave_node.gd" type="Script" id=48]
-[ext_resource path="res://scenes/deparments/Zone.tscn" type="PackedScene" id=49]
[node name="Game" type="Node2D"]
script = ExtResource( 20 )
-[node name="BeehaveRoot" type="Node" parent="."]
-script = ExtResource( 46 )
-
-[node name="DayCycle" type="Node" parent="BeehaveRoot"]
-script = ExtResource( 2 )
-
-[node name="BeehaveNode" type="Node" parent="BeehaveRoot/DayCycle"]
-script = ExtResource( 48 )
+[node name="DayCycle" type="Timer" parent="."]
+wait_time = 12.0
+autostart = true
+__meta__ = {
+"_editor_description_": "Calculation based on: https://gaming.stackexchange.com/questions/110529/real-world-time-in-a-simcity-day-on-various-speeds"
+}
[node name="MapOne" parent="." instance=ExtResource( 1 )]
@@ -293,16 +286,6 @@ __meta__ = {
"_edit_use_anchors_": true
}
-[node name="VersionLbl" type="Label" parent="Controls/Control Panel/Windows"]
-anchor_left = 0.0146199
-anchor_top = 0.0271318
-anchor_right = 0.182261
-anchor_bottom = 0.0542636
-text = "Version"
-__meta__ = {
-"_edit_use_anchors_": true
-}
-
[node name="Status" type="Panel" parent="Controls/Control Panel"]
anchor_top = 12.95
anchor_right = 25.65
@@ -311,6 +294,10 @@ __meta__ = {
"_edit_use_anchors_": true
}
+[node name="RotateNews" type="Timer" parent="Controls/Control Panel/Status"]
+wait_time = 5.0
+autostart = true
+
[node name="SettingsBtn" type="Button" parent="Controls/Control Panel/Status"]
anchor_left = 0.0115391
anchor_top = 0.0555202
@@ -479,8 +466,6 @@ __meta__ = {
"_edit_use_anchors_": true
}
-[node name="Zone" parent="." instance=ExtResource( 49 )]
-position = Vector2( 650, 351 )
-
-[node name="PowerStation" parent="." instance=ExtResource( 47 )]
-position = Vector2( 758, 277 )
+[connection signal="timeout" from="DayCycle" to="." method="_on_DayCycle_timeout"]
+[connection signal="timeout" from="Controls/Control Panel/Status/RotateNews" to="Controls/Control Panel" method="_on_RotateNews_timeout"]
+[connection signal="pressed" from="Controls/Control Panel/Status/NewsBtn" to="Controls/Control Panel" method="_on_NewsBtn_pressed"]
diff --git a/scripts/Zone.gd b/scripts/Zone.gd
index f59c823..c885d74 100644
--- a/scripts/Zone.gd
+++ b/scripts/Zone.gd
@@ -1,5 +1,12 @@
extends Area2D
+signal grabbed
+signal has_power
+
+export var cost: int = 10000
+export var income: int = 100
+export var expense: int = 0
+
onready var zone = $Sprite
onready var quarters = $Quarters
onready var animator = $AnimationPlayer
@@ -8,32 +15,48 @@ var can_grab = false
var grabbed_offset = Vector2()
func _ready():
- zone.frame = 0
-
-#func _drag_drop(event):
-# if event is InputEventMouseButton and can_grab:
-# # Substract from the player's budget and disable grabbing
-# if SimData.budget >= cost:
-# SimData.budget -= cost
-# can_grab = false
-# grabbed_offset = position - get_global_mouse_position()
+ SimEvents.connect("budget", self, "_get_budget")
+ connect("grabbed", self, "_grab_zone")
-#func _input(event):
-# _drag_drop(event)
+func _drag_drop(event):
+ if event is InputEventMouseButton and can_grab:
+ # Substract from the player's budget and disable grabbing
+ if SimData.budget >= cost:
+ SimData.budget -= cost
+ can_grab = false
+ grabbed_offset = position - get_global_mouse_position()
+
+func _input(event):
+ _drag_drop(event)
func _process(delta):
- if SimData.has_power == true:
+ if can_grab:
+ position = get_global_mouse_position() + grabbed_offset
+
+func _animante_sprite(animante: bool = true):
+ if zone.hframes > 1 or zone.vframes > 1 and animante:
animator.play("Animante")
else:
animator.stop()
-# if can_grab:
-# position = get_global_mouse_position() + grabbed_offset
-
-#func _animante_sprite(animante: bool = true):
-# if zone.hframes > 1 or zone.vframes > 1 and animante:
-# animator.play("Animante")
-# else:
-# animator.stop()
-#func _grab_zone():
-# can_grab = true
+func _grab_zone():
+ can_grab = true
+
+func _get_budget():
+ if SimData.budget >= expense and SimData.has_power:
+ SimData.budget -= expense
+ SimData.expenses = expense
+
+ if SimData.has_power:
+ var total_income = SimData.res_tax * income
+ SimData.budget += total_income
+ SimData.res_income = total_income
+
+func _on_Zone_body_entered(body: Node):
+ if SimData.has_power and can_grab == false:
+ quarters.start()
+ _animante_sprite()
+
+func _on_Zone_body_exited(body: Node):
+ quarters.stop()
+ _animante_sprite(false)
diff --git a/scripts/autoload/sim_data.gd b/scripts/autoload/sim_data.gd
index baf0e19..d924d9e 100644
--- a/scripts/autoload/sim_data.gd
+++ b/scripts/autoload/sim_data.gd
@@ -17,9 +17,6 @@ var current_power_cap: int
var prev_power_cap: int
var has_power: bool
-var res_tax: int = 5
-var res_income: int
-
var ticker_files: Array = [
"adverts.json",
"sammy.json"
diff --git a/scripts/simtactics/has_power.gd b/scripts/simtactics/has_power.gd
deleted file mode 100644
index 7427664..0000000
--- a/scripts/simtactics/has_power.gd
+++ /dev/null
@@ -1,20 +0,0 @@
-extends ConditionLeaf
-
-export var cost: int = 10000
-export var income: int = 100
-export var expense: int = 0
-
-func tick(actor, blackboard):
- if SimData.has_power:
- if SimData.budget >= expense:
- SimData.budget -= expense
- SimData.expenses = expense
-
- if SimData.has_power:
- var total_income = SimData.res_tax * income
- SimData.budget += total_income
- SimData.res_income = total_income
-
- return SUCCESS
-
- return FAILURE
diff --git a/scripts/simtactics/turn_on.gd b/scripts/simtactics/turn_on.gd
deleted file mode 100644
index a45af1f..0000000
--- a/scripts/simtactics/turn_on.gd
+++ /dev/null
@@ -1,5 +0,0 @@
-extends ConditionLeaf
-
-func tick(actor, blackboard):
- SimData.has_power = true
- return RUNNING
diff --git a/scripts/simtactics/zone.gd b/scripts/simtactics/zone.gd
deleted file mode 100644
index 1d6d575..0000000
--- a/scripts/simtactics/zone.gd
+++ /dev/null
@@ -1,18 +0,0 @@
-extends ConditionLeaf
-
-export var cost: int = 10000
-export var income: int = 100
-export var expense: int = 0
-
-func tick(actor, blackboard):
- if SimData.has_power:
- if SimData.budget >= expense:
- SimData.budget -= expense
- SimData.expenses = expense
-
- if SimData.has_power:
- var total_income = SimData.res_tax * income
- SimData.budget += total_income
- SimData.res_income = total_income
-
- return RUNNING
diff --git a/scripts/ticker.gd b/scripts/ticker.gd
index 1c99bdc..7405cdd 100644
--- a/scripts/ticker.gd
+++ b/scripts/ticker.gd
@@ -1,42 +1,42 @@
extends Control
-#const TICKER_PATH = "res://json/ticker/"
-#const FNN_LOGO = "res://assets/ticker/fnn.png"
-#const CONFIG_FILE = "config.json"
-#
-#onready var ticker_text = $Status/NewsBtn
-#onready var ticker_box = $Windows/NewsWindow/News
-#onready var ticker_window = $Windows/NewsWindow
-#
-#var news_file: String = ""
-#var rng = RandomNumberGenerator.new()
-#var all_news: Array = []
-#var speices: Array = [
-# "Cat",
-# "Fennec",
-# "Fox"
-#]
-#
-#var json_files: Array = []
-#
-#func _load_json():
-# var file = File.new()
-# if file.file_exists(news_file):
-# file.open(news_file, file.READ)
-# var result = parse_json(file.get_as_text())
-# return result
-#
-#func _index_news():
-# var news = _load_json()
-# all_news.clear()
-# all_news = news["ticker"]
-# randomize()
-# all_news.shuffle()
-#
-#func _ready():
-# ticker_window.window_title = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet")
-#
-# _randomize_news(json_files)
+const TICKER_PATH = "res://json/ticker/"
+const FNN_LOGO = "res://assets/ticker/fnn.png"
+const CONFIG_FILE = "config.json"
+
+onready var ticker_text = $Status/NewsBtn
+onready var ticker_box = $Windows/NewsWindow/News
+onready var ticker_window = $Windows/NewsWindow
+
+var news_file: String = ""
+var rng = RandomNumberGenerator.new()
+var all_news: Array = []
+var speices: Array = [
+ "Cat",
+ "Fennec",
+ "Fox"
+]
+
+var json_files: Array = []
+
+func _load_json():
+ var file = File.new()
+ if file.file_exists(news_file):
+ file.open(news_file, file.READ)
+ var result = parse_json(file.get_as_text())
+ return result
+
+func _index_news():
+ var news = _load_json()
+ all_news.clear()
+ all_news = news["ticker"]
+ randomize()
+ all_news.shuffle()
+
+func _ready():
+ ticker_window.window_title = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet")
+
+ _randomize_news(json_files)
#func _process(delta):
# var prev_json_Files = json_files
@@ -60,64 +60,73 @@ extends Control
# for files in city_life:
# json_files.append(files)
-#func _array_check(list1, list2):
-# for item in list1:
-# if item in list2:
-# return true
-#
-# return false
-#
-#func _start_alert(message):
-## if ticker_text.items.size() > 1:
-## ticker_text.clear()
-##
-## SimData.on_alert = true
-## news_file = str(TICKER_PATH + "ticker_alerts.json")
-## ticker_text.add_item(all_news)
-#
-# pass
-#
-#func _randomize_news(files: Array):
-# if all_news == null:
-# json_files = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "ticker_files")
-#
-# for file in files:
-# news_file = str(TICKER_PATH + file)
-# _load_json()
-# _index_news()
-#
-# rng.randomize()
-# randomize()
-# files.shuffle()
-#
-# var news_range = rng.randi_range(0, all_news.size() - 1)
-# var news_text: String = all_news[news_range]
-#
-# if "[competing_outlet]" in news_text:
-# news_text = news_text.replace("[competing_outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "competing_outlet"))
-#
-# if "[outlet]" in news_text:
-# news_text = news_text.replace("[outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet"))
-#
-# if "[species]" in news_text:
-# speices.shuffle()
-# var speices_range = rng.randi_range(speices.size() - 1)
-# news_text = news_text.replace("[species]", speices[speices_range])
-#
-# if "[city]" in news_text:
-# news_text = news_text.replace("[city]", SimData.city_name)
-#
-# if "[mayor]" in news_text:
-# news_text = news_text.replace("[mayor]", SimData.mayor_name)
-#
-# # Prevent stack overflaw
-# if ticker_box.items.size() > 10:
-# ticker_box.clear()
-#
-# _randomize_news(json_files)
-# _add_news(news_text)
-#
-#func _add_news(news_item):
-# ticker_text.text = news_item
-# ticker_box.add_item(news_item)
+func _array_check(list1, list2):
+ for item in list1:
+ if item in list2:
+ return true
+
+ return false
+
+func _start_alert(message):
+# if ticker_text.items.size() > 1:
+# ticker_text.clear()
#
+# SimData.on_alert = true
+# news_file = str(TICKER_PATH + "ticker_alerts.json")
+# ticker_text.add_item(all_news)
+
+ pass
+
+func _randomize_news(files: Array):
+ if all_news == null:
+ json_files = JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "ticker_files")
+
+ for file in files:
+ news_file = str(TICKER_PATH + file)
+ _load_json()
+ _index_news()
+
+ rng.randomize()
+ randomize()
+ files.shuffle()
+
+ var news_range = rng.randi_range(0, all_news.size() - 1)
+ var news_text: String = all_news[news_range]
+
+ if "[competing_outlet]" in news_text:
+ news_text = news_text.replace("[competing_outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "competing_outlet"))
+
+ if "[outlet]" in news_text:
+ news_text = news_text.replace("[outlet]", JsonHelper.key_value(TICKER_PATH, CONFIG_FILE, "outlet"))
+
+ if "[species]" in news_text:
+ speices.shuffle()
+ var speices_range = rng.randi_range(speices.size() - 1)
+ news_text = news_text.replace("[species]", speices[speices_range])
+
+ if "[city]" in news_text:
+ news_text = news_text.replace("[city]", SimData.city_name)
+
+ if "[mayor]" in news_text:
+ news_text = news_text.replace("[mayor]", SimData.mayor_name)
+
+ # Prevent stack overflaw
+ if ticker_box.items.size() > 10:
+ ticker_box.clear()
+
+ _randomize_news(json_files)
+ _add_news(news_text)
+
+func _add_news(news_item):
+ ticker_text.text = news_item
+ ticker_box.add_item(news_item)
+
+func _on_NewsBtn_pressed():
+ ticker_window.show()
+
+func _on_RotateNews_timeout():
+ rng.randomize()
+ randomize()
+ all_news.shuffle()
+ json_files.shuffle()
+ _randomize_news(json_files)
diff --git a/scripts/windows.gd b/scripts/windows.gd
index c7b6dcd..7044d86 100644
--- a/scripts/windows.gd
+++ b/scripts/windows.gd
@@ -5,16 +5,7 @@ onready var tax_window = $TaxWindow
onready var advsior_meet_window = $AdvisorMeet
onready var tools_window = $ToolsWindow
-onready var verLabel = $VersionLbl
-
func _ready():
- # To get version string
- var version = ProjectSettings.get_setting("application/config/version")
- # To get build number
- var build = ProjectSettings.get_setting("application/config/build")
-
- verLabel.text = version + " (Build " + str(build) + ")"
-
SimData.city_name = SimData.city_name.capitalize()
SimData.mayor_name = SimData.mayor_name.capitalize()