Rewrote news ticker

- Rewrote news ticker based on JSON web API tutorials
- Simplified json files for news ticker as part of rewrite
- Renamed /dialog to /json
This commit is contained in:
Tony Bark 2021-05-30 12:38:41 -04:00
parent b443ee61fe
commit ef6b097ef2
20 changed files with 170 additions and 71 deletions

View file

@ -2,76 +2,110 @@ extends ColorRect
onready var ticker_text = $TickerTxt
var news_file = ""
const ticker_path = "res://json/ticker/"
var news_file: String = ""
var rng = RandomNumberGenerator.new()
var news_keys = []
var all_news = []
var speices = [
"Cat",
"Fennec",
"Fox"
]
var json_files = [
"adverts.json",
# "sammy.json"
]
func _index_news():
var news = _load_news()
news_keys.clear()
for key in news:
news_keys.append(news[key])
var news = _load_json()
all_news.clear()
all_news = news["ticker"]
randomize()
news_keys.shuffle()
all_news.shuffle()
func _process(delta):
var prev_json_Files = json_files
var city_life = [
"citylife.json",
"kittykibble.json"
]
if _array_check(city_life, json_files):
match SimData.has_power:
true:
prev_json_Files = json_files
for files in city_life:
json_files.append(files)
false:
prev_json_Files = json_files
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 _load_news():
func _load_json():
var file = File.new()
if file.file_exists(news_file):
file.open(news_file, file.READ)
var dialogue = parse_json(file.get_as_text())
return dialogue
var result = parse_json(file.get_as_text())
return result
func _ready():
SimData.city_name = SimData.city_name.capitalize()
SimData.mayor_name = SimData.mayor_name.capitalize()
SimEvents.connect("send_alert", self, "_start_alert")
SimEvents.connect("resume_news", self, "_resume_ticker")
_random_news("res://dialog/ticker/ticker.json")
_random_news(json_files)
func _start_alert(message):
SimData.on_alert = true
news_file = "res://dialog/ticker/ticker_alerts.json"
ticker_text.text = news_keys[message].text
news_file = str(ticker_path + "ticker_alerts.json")
ticker_text = all_news
func _random_news(file):
news_file = file
func _random_news(files: Array):
for file in files:
news_file = str(ticker_path + file)
_load_json()
_index_news()
rng.randomize()
_load_news()
_index_news()
randomize()
all_news.shuffle()
var max_mange = news_keys.size() - 1
var ticker_range = rng.randi_range(0, max_mange)
var news = news_keys[ticker_range].text
var news_range = rng.randi_range(0, all_news.size() - 1)
var news_text: String = all_news[news_range]
if SimData.has_ctower or SimData.city_name == "Furtropolis" or "Furville" and "[outlet]" in news:
if SimData.has_ctower or SimData.city_name == "Furtropolis" or "Furville" and "[outlet]" in news_text:
# FNN = Furtropolis/Furry News Network
news = news.replace("[outlet]", "FNN")
elif "[outlet]" in news:
news = news.replace("[outlet]", "Pawprint Press")
if "[species]" in news:
news_text.replace("[outlet]", "FNN")
else:
news_text.replace("[outlet]", "Pawprint Press")
if "[species]" in news_text:
randomize()
speices.shuffle()
news = news.replace("[species]", speices[rng.randi()%speices.size()])
var speices_range = rng.randi_range(speices.size() - 1)
news_text.replace("[species]", speices[speices_range])
if "[city]" in news_text:
news_text.replace("[city]", SimData.city_name)
if "[mayor]" in news_text:
news_text.replace("[mayor]", SimData.mayor_name)
if "[city]" in news:
news = news.replace("[city]", SimData.city_name)
if "[mayor]" in news:
news = news.replace("[mayor]", SimData.mayor_name)
ticker_text.text = news
ticker_text.text = news_text
func _resume_ticker():
_random_news("res://dialog/ticker/ticker.json")
_random_news(json_files)
func _on_RotateNews_timeout():
_random_news("res://dialog/ticker/ticker.json")
_random_news(json_files)