

ggs_url=https://docs.google.com/spreadsheet/ccc?key=0AnO8bLtuO_H5dFA0TUtmXzhyZUhyYTVwZ1N2b04tYlE&gid=GID&output=csv

explanations_gid=1460016303
scenarios_gid=1378344520
items_gid=10
creatures_gid=1
rooms_gid=11
events_gid=7



PNG_DIR=png
JSON_DIR=json
ICON_DIR=icons
CSV_DIR=csv


SCENARIOS_JSON=$(wildcard $(JSON_DIR)/scenario_[0-9]*.json)
SCENARIOS_PNG=$(subst json,png,$(SCENARIOS_JSON))

CREATURES_JSON=$(wildcard $(JSON_DIR)/creature_[0-9]*.json)
CREATURES_PNG=$(subst json,png,$(CREATURES_JSON))

ROOMS_JSON=$(wildcard $(JSON_DIR)/room_[0-9]*.json)
ROOMS_PNG=$(subst json,png,$(ROOMS_JSON))

EVENTS_JSON=$(wildcard $(JSON_DIR)/event_[0-9]*.json)
EVENTS_PNG=$(subst json,png,$(EVENTS_JSON))

ITEMS_JSON=$(wildcard $(JSON_DIR)/item_[0-9]*.json)
ITEMS_PNG=$(subst json,png,$(ITEMS_JSON))

SHEETS_PNG=$(foreach x, B E1 E2 E3 F1 F2 F3 G I P R Y T, $(PNG_DIR)/sheet_$x.png)
SHEETS_HTML=$(subst png,html,$(SHEETS_PNG))

IMAGES_JPG=$(wildcard img/*.jpg)

ALL_JSON=$(foreach x, items events rooms creatures scenarios events explanations, $(JSON_DIR)/all_$x.json)

ALL_CSV=$(foreach x, items events rooms creatures scenarios events explanations, $(CSV_DIR)/$x.csv)


all: png html

png: scenarios creatures sheets rooms events

items: $(ITEMS_PNG)

scenarios: $(SCENARIOS_PNG)

creatures: $(CREATURES_PNG)

events: $(EVENTS_PNG)

rooms: $(ROOMS_PNG)

sheets: $(SHEETS_PNG)

$(PNG_DIR)/sheet_I.png: $(JSON_DIR)/all_items.json $(ITEMS_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "item" I "json" "png"

$(PNG_DIR)/sheet_P.png: $(JSON_DIR)/all_rooms.json $(ROOMS_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "room" P "json" "png" 3

$(PNG_DIR)/sheet_F%.png: $(JSON_DIR)/all_events.json $(EVENTS_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "event" "F$*" "json" "png" 3

$(PNG_DIR)/sheet_E%.png: $(JSON_DIR)/all_events.json $(EVENTS_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "event" "E$*" "json" "png" 3

$(PNG_DIR)/sheet_G.png: $(JSON_DIR)/all_creatures.json $(CREATURES_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "creature" G "json" "png"

$(PNG_DIR)/sheet_T.png: $(JSON_DIR)/all_creatures.json $(CREATURES_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "creature" T "json" "png"

$(PNG_DIR)/sheet_Y.png: $(JSON_DIR)/all_creatures.json $(CREATURES_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "creature" Y "json" "png"

$(PNG_DIR)/sheet_R.png: $(JSON_DIR)/all_creatures.json $(CREATURES_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "creature" R "json" "png"

$(PNG_DIR)/sheet_B.png: $(JSON_DIR)/all_creatures.json $(CREATURES_PNG) RecUtils.py CardDetails.py gen-sheet.py $(PNG_DIR)/.prerequisites
	python3 gen-sheet.py "creature" B "json" "png"

force-csv: clean-csv csv

csv: $(ALL_CSV)

clean-csv:
	rm -f csv/download-ggs-*

csv/download-ggs-%:
	python3 download-ggs.py "$(subst GID,$*,$(ggs_url))" "$@"

csv/rooms.csv: csv/download-ggs-$(rooms_gid)
	diff $< $@  > /dev/null || cp $< $@

csv/items.csv: csv/download-ggs-$(items_gid)
	diff $< $@ > /dev/null || cp $< $@

csv/scenarios.csv: csv/download-ggs-$(scenarios_gid)
	diff $< $@ > /dev/null || cp $< $@

csv/events.csv: csv/download-ggs-$(events_gid)
	diff $< $@ > /dev/null || cp $< $@

csv/creatures.csv: csv/download-ggs-$(creatures_gid)
	diff $< $@ > /dev/null || cp $< $@

csv/explanations.csv: csv/download-ggs-$(explanations_gid)
	diff $< $@ > /dev/null || cp $< $@

$(JSON_DIR)/icons.json: $(JSON_DIR)/all_items.json gen-icons.py
	python3 gen-icons.py "$<" "$(ICON_DIR)" "$@" "$(PNG_DIR)"

$(JSON_DIR)/all_%s.json:  csv/%s.csv csv-to-json.py 
	python3 csv-to-json.py "$<" "$(notdir $@)" "$*" "$(JSON_DIR)"

json: $(ALL_JSON)

$(JSON_DIR)/scenario_%.json: json

$(PNG_DIR)/scenario_%.png: $(JSON_DIR)/scenario_%.json gen-scenario.py RecUtils.py CardDetails.py
	python3 gen-scenario.py "scenario_$*" "json" "png"

$(PNG_DIR)/room_%.png: $(JSON_DIR)/room_%.json gen-event.py RecUtils.py CardDetails.py
	python3 gen-event.py "room_$*" "json" "png"

$(PNG_DIR)/event_%.png: $(JSON_DIR)/event_%.json gen-event.py RecUtils.py CardDetails.py
	python3 gen-event.py "event_$*" "json" "png"

$(PNG_DIR)/item_%.png: $(JSON_DIR)/item_%.json gen-item.py RecUtils.py CardDetails.py $(PNG_DIR)/.prerequisites
	python3 gen-item.py "item_$*" "json" "png"

$(PNG_DIR)/creature_%.png: $(JSON_DIR)/creature_%.json gen-creature.py RecUtils.py CardDetails.py $(PNG_DIR)/.prerequisites
	python3 gen-creature.py "creature_$*" "json" "png"


$(PNG_DIR)/.prerequisites: gen-prereq.py CardDetails.py
	python3 gen-prereq.py
	touch $@

download: clean-csv 
	$(MAKE) json

force: download
	$(MAKE) all

back: $(BACK_PNG)


hclean:
	rm -f $(JSON_DIR)/* $(PNG_DIR)/* $(PNG_DIR)/.prerequisites

html/sheets.html: gen-html.py $(SHEETS_PNG)
	python3 gen-html.py "Sheets" $(SHEETS_PNG) > $@

html/creatures.html: gen-html.py $(CREATURES_PNG)
	python3 gen-html.py "Creatures" $(CREATURES_PNG) > $@

html/scenarios.html: gen-html.py $(SCENARIOS_PNG)
	python3 gen-html.py "Scenarios" $(SCENARIOS_PNG) > $@

html/rooms.html: gen-html.py $(ROOMS_PNG)
	python3 gen-html.py "Rooms" $(ROOMS_PNG) > $@

html/images.html: gen-html.py $(IMAGES_JPG)
	python3 gen-html.py "Images" $(IMAGES_JPG) > $@

html/sheet_%.html: gen-html.py $(wildcard $(PNG_DIR)/*_%*.png)
	python3 gen-html.py "Sheet $*" $(wildcard $(PNG_DIR)/*_$**.png) > $@

html: html/sheets.html html/scenarios.html html/creatures.html html/rooms.html html/images.html $(SHEETS_HTML)

img/%:

upload:
	python3 gen-version.py
	rsync -ra --info=name html/* json img png ~/OnlineData/hidden.cyanure.fr/rec/
	cd && ~/.unison/unison-2.48.4 -auto online

.PHONY: force force-csv csv clean-csv all png download scenarios creatures sheets html
