mirror of
https://github.com/tonytins/citylimits
synced 2025-06-26 01:44:42 -04:00
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:
parent
b443ee61fe
commit
ef6b097ef2
20 changed files with 170 additions and 71 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue