rundgang ready

This commit is contained in:
2019-02-01 10:19:13 +01:00
parent 6c9ba5347a
commit dab78924d7
21 changed files with 1120 additions and 594 deletions

230
Buttons.pde Normal file
View File

@@ -0,0 +1,230 @@
int i_buttonCount = 7;
int i_debugButtonCount = 7;
int i_buttonId;
Button buttons[] = new Button[i_buttonCount];
DebugButton debugButtons[] = new DebugButton[i_debugButtonCount];
void initButtons() {
for (int i = 0; i < i_debugButtonCount; i++) {
debugButtons[i] = new DebugButton(i);
}
debugButtons[0].setLabel("Autoplay");
debugButtons[1].setLabel("Lock Camera");
debugButtons[2].setLabel("Debug");
debugButtons[3].setLabel("Control Eyes");
debugButtons[4].setLabel("Houses Texts");
debugButtons[5].setLabel("Pause Time");
debugButtons[6].setLabel("Draw Nodes");
//id assigned by order of instantiation; centroid x, centroid y, w, h, corner, label, textsize, color
buttons[0] = new Button(i_windowW/2, 75, 200, 50, i_debugButtonCorner, "Nacht überspringen >>", 15, color(255, i_uiTransparency));
buttons[1] = new Button(i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner, "", 1, color(255, 0)); //help
buttons[2] = new Button(2*i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner, "", 1, color(255, 0));//spectate
buttons[3] = new Button(2*i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner, "", 1, color(255, 0));//control
buttons[4] = new Button(3*i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner, "", 1, color(255, 0));//magplus
buttons[5] = new Button(3*i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner, "", 1, color(255, 0));//magminus
buttons[2].b_active = false;
buttons[5].b_active = false;
buttons[6] = new Button(i_windowW/2, i_windowH-180, 200, 50, i_debugButtonCorner, "Schließen", 15, color(190));
buttons[6].b_active = false;
}
boolean b_triggerButton;
void buttonFunctions(int functionID, boolean debug) {
if (!debug) {
switch (functionID) {
case(0):
if (i_flexibleTime >= getFlexTime(23, 00)) i_days++;
setTime(6, 0);
break;
case(1):
showHelp();
break;
case(2):
if (!b_triggerButton) {
buttons[2].b_active = false;
buttons[3].b_active = true;
spectate();
buttonFunctions(5,false);
}
b_triggerButton = true;
break;
case(3):
if (!b_triggerButton) {
buttons[3].b_active = false;
buttons[2].b_active = true;
control();
}
b_triggerButton = true;
break;
case(4):
if (!b_triggerButton) {
buttons[4].b_active = false;
buttons[5].b_active = true;
zoomIn();
if (i_selectedCitizen == 0) selectCitizen((int)random(0, citizen.length));
b_cameraLock = true;
}
b_triggerButton = true;
break;
case(5):
if (!b_triggerButton) {
buttons[4].b_active = true;
buttons[5].b_active = false;
zoomOut();
//if(!b_control) selectCitizen(0);
b_cameraLock = false;
}
b_triggerButton = true;
break;
case(6):
b_showingHelp = false;
buttons[6].b_active = false;
break;
default:
break;
}
} else {
switch (functionID) {
case(0):
b_autoPlay = !b_autoPlay;
if (b_autoPlay) {
for (int i = 0; i < citizen.length; i++) {
if (!citizen[i].b_moving) {
if (citizen[i].nextNode == 0) {
b_makeThemGo = true; //toggles one random goTo per frame per citizen, turns itself off when finished
} else {
citizen[i].b_moving = true;
}
}
if (!citizen[i].b_randomRun) {
citizen[i].b_randomRun = true;
}
}
} else {
for (int i = 0; i < citizen.length; i++) {
citizen[i].b_moving = false;
citizen[i].b_randomRun = false;
citizen[i].b_turning = false;
}
}
break;
case(1):
b_cameraLock = !b_cameraLock;
break;
case(2):
b_debug = !b_debug;
for (int i = 0; i < citizen.length; i++) {
citizen[i].c_stroke = color(int(!b_debug)*255);
}
for (int i = 0; i < interactables.length; i++) {
interactables[i].c_stroke = color(int(!b_debug)*255);
}
break;
case(3):
b_controlEyeWithMouse = !b_controlEyeWithMouse;
break;
case(4):
b_housesTexts = !b_housesTexts;
break;
case(5):
b_pauseTime = !b_pauseTime;
break;
case(6):
b_drawNodes = !b_drawNodes;
default:
break;
}
}
}
class DebugButton extends Button {
DebugButton(int id) {
i_id = id;
i_x = i_debugButtonMenuX + i_debugButtonMenuPadding;
i_y = i_debugButtonMenuY + i_debugButtonMenuPadding + (i_debugButtonPadding + i_debugButtonHeight) * i_id;
i_w = i_debugButtonWidth;
i_h = i_debugButtonHeight;
i_corner = i_debugButtonCorner;
i_textSize = i_debugTextSize;
i_debugButtonMenuButtonC++;
}
}
class Button {
int i_id, i_x, i_y, i_w, i_h, i_corner, i_labelX, i_labelY, i_textSize;
int i_clickMargin = 3;
String s_label;
color c_color = color(255, 155);
boolean b_active = true;
boolean hover() {
if (b_active) return (mouseX > i_x - i_clickMargin && mouseX < i_x+i_w + i_clickMargin && mouseY > i_y - i_clickMargin && mouseY < i_y+i_h + i_clickMargin) ? true : false;
else return false;
}
/*
static Button buttonKeeper;
void f(){
Button fuckGarbageCollection = new Button();
}
public void holyShit(){
buttonKeeper = this;
println("omg");
}
*/
Button() {
//f();
}
Button(int x, int y, int w, int h, int corner, String lab, int textsize, color col) {
i_id = i_buttonId;
i_buttonId++;
i_w = w;
i_h = h;
i_x = x - i_w/2;
i_y = y - i_h/2;
i_corner = corner;
i_textSize = textsize;
s_label = lab;
textSize(i_textSize);
i_labelX = i_x + i_w/2 - (int)(textWidth(s_label) /2);
c_color = col;
}
void setLabel(String lab) {
s_label = lab;
textSize(i_textSize);
i_labelX = i_x + (i_w/2) - (int)(textWidth(s_label) /2);
}
void click() {
if (b_active) {
buttonFunctions(i_id, this instanceof DebugButton);
}
}
//void keepAlive(){
//}
void display() {
if (b_active) {
fill(c_color);
rect(i_x, i_y, i_w, i_h, i_corner);
fill(0, 255);
textSize(i_textSize);
text(s_label, i_labelX, i_y + i_h/2 + i_textSize/2.5);
}
}
}

View File

@@ -69,6 +69,10 @@ class Citizen extends Entity {
int i_age;
int i_home;
String s_currentAction;
int i_maxNodeDistance = 100; //amount of steps to circle around x, y until it finds the nearest node, if none found, breaks path finding. what to do then is defined in rescuePath()
int i_spreadSteps = 10;
float f_movementSpeed;
float f_FOV = PI / 4.0;
int i_visionDistance = 80;
@@ -96,14 +100,15 @@ class Citizen extends Entity {
int pathAlgorithm = i_pathAlgorithm;
Citizen(int id, int home, String name, int gender, int age) {
i_id = id;
i_home = home;
s_name = name;
i_gender = gender;
s_gender = i_gender == 0 ? "Female" : "Male";
s_gender = i_gender == 0 ? "Weiblich" : "Männlich";
i_age = age;
i_diameter = 15;
pathFinder = makePathFinder(gs, pathAlgorithm);
i_diameter = 30;
pathFinder = makePathFinder(gs, pathAlgorithm);
f_movementSpeed = random(f_walkSpeedMin, f_walkSpeedMax);
rNodes = pathFinder.getRoute();
s_currentAction = "current action here";
@@ -115,15 +120,7 @@ class Citizen extends Entity {
i_goHomeMinute = (int)random(0, 59);
i_goOutHour = (int)random(6, 9);
i_goOutMinute = (int)random(0, 59);
//if (b_randomRun) goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)), 10); //bad
}
//citizen kann "lookat" mit 180° winkel mit bullseye förmigen gradient welches die chance etwas zu bemerken darstellt
//setFocus(entity) durch geräusche auch von objekten ausserhalb des sichtfeldes aufrufbar
//citizen kann "focus", guckt mit den augen in die richtung. 2. augen-vektor! kopf wird mitgedreht je nach "openness"
//citizen kann "take", nimmt gegenstand in die hand. arraylist "holds" - gegenstände in der hand
int i_direction(float f, float v) {
@@ -133,17 +130,12 @@ class Citizen extends Entity {
}
void update() {
// f_angle = v2_direction.heading(); do i need this here or is it ok in turn()?
if (b_turning) {
turn();
}
if (b_moving) { //if rNodes.length > 0
if (b_moving) {
move();
}
perceive();
if (b_talking) {
talk();
@@ -157,7 +149,8 @@ class Citizen extends Entity {
if (i_hours == i_goOutHour && i_minutes == i_goOutMinute) { //wake
b_randomRun = true;
i_location = 1;
goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
//goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
goToRandom();
}
if (i_location == 1 && b_moving == false) { //sleep
@@ -182,7 +175,6 @@ class Citizen extends Entity {
if (i_location == 1)
pg_map.arc(f_xPos, f_yPos, i_visionDistance*2, i_visionDistance*2, f_angle+HALF_PI*1.5, f_angle+PI/2*2.5, PIE);
//}
//pg_map.stroke(c_stroke);
pg_map.stroke(c_initialColor);
pg_map.strokeWeight(1);
@@ -196,10 +188,10 @@ class Citizen extends Entity {
//pg_map.fill(c_initialColor);
pg_map.textAlign(CENTER);
pg_map.textSize(i_nameSize);
int namePos = -10;
int namePos = -i_diameter/3*2;
if (b_talking) {
pg_map.text("\"Hallo " + citizen[i_lastCitizenTalked].s_name + "\"", f_xPos, f_yPos-10);
namePos = -20;
pg_map.text("\"Hallo " + citizen[i_lastCitizenTalked].s_name + "\"", f_xPos, f_yPos-i_diameter/3*2);
namePos = -i_diameter/3*2*2;
}
pg_map.text(s_name, f_xPos, f_yPos + namePos);
pg_map.stroke(c_stroke);
@@ -246,7 +238,7 @@ class Citizen extends Entity {
boolean b_talking;
boolean b_movingBeforeTalk;
int i_talkTimeStart;
int i_talkTime = 5; //how long talk in seconds (better in frames?)
int i_talkTime = 5; //how long talk in seconds
int i_lastCitizenTalked = -1;
void talkTo(Citizen citizen) { //replace passing whole entity with passing id
@@ -256,12 +248,9 @@ class Citizen extends Entity {
b_movingBeforeTalk = b_moving;
b_moving = false;
i_lastCitizenTalked = citizen.i_id;
//println(s_name + " talking to " + citizen.s_name);
//c_color = c_color / 10 * 9 + citizen.c_color/10;
}
void talk() { //means: exchanging colors
void talk() { //means: exchange colors
float r = red(c_color);
float g = green(c_color);
float b = blue(c_color);
@@ -284,63 +273,21 @@ class Citizen extends Entity {
}
}
boolean b_pathFindKaputt;
void goTo(int x, int y) {
//add: go to node? go to house?
int i_goToX = x;
int i_goToY = y;
int spread = 0;
boolean findingWay = false;
while (!findingWay && !b_pathFindKaputt) {
float nodeDistance = 1.0f;
findingWay = true;
while (gs.getNodeAt(f_xPos, f_yPos, 0, nodeDistance) == null && nodeDistance < 1000) {
nodeDistance++;
}
if (nodeDistance>= 1000) {
b_pathFindKaputt = true;
break;
}
startNodeID = gs.getNodeAt(f_xPos, f_yPos, 0, nodeDistance).id();
nodeDistance = 1.0f;
while (gs.getNodeAt(i_goToX, i_goToY, 0, nodeDistance) == null && nodeDistance < 1000) {
nodeDistance++;
}
if (nodeDistance >= 1000) {
b_pathFindKaputt = true;
break;
}
endNodeID = gs.getNodeAt(i_goToX, i_goToY, 0, nodeDistance).id();
if (pathFinder.search(startNodeID, endNodeID, true) == null) {
findingWay = false;
spread += 10;
i_goToX+= spread;
i_goToY+= spread;
}
if (spread >= 1000) b_pathFindKaputt = true;
}
if (!b_pathFindKaputt) {
pathFinder.search(startNodeID, endNodeID, true); //returns null if no route is found
rNodes = pathFinder.getRoute();
if (rNodes.length > 0) {
nextNode = 0;
b_moving = true;
} else { //implement more intelligent design which calls goTo not in this frame, but in the next 120 frames or so
//also at this point i can move recalculating the nodes into the next frames if no route is found (not only random)..
if (b_randomRun) goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
}
} else {
println("Pathfinding failed");
b_pathFindKaputt = false;
f_xPos = (int)random(0, i_windowW);
f_yPos = (int)random(0, i_windowH);
goTo((int)houses.get(i_home).v2_center.x, (int)houses.get(i_home).v2_center.y);
}
void goToRandom() {
int randomNodeId = (int)random(0, gNodes.length);
preparePath((int)gNodes[randomNodeId].x(), (int)gNodes[randomNodeId].y());
getPath();
}
void goTo(int x, int y) {
preparePath(x, y);
getPath();
}
void goTo(House house) {
preparePath((int)house.v2_center.x, (int)house.v2_center.y);
getPath();
}
void move() {
@@ -352,12 +299,12 @@ class Citizen extends Entity {
float f_xPosNext = rNodes[nextNode].xf();
float f_yPosNext = rNodes[nextNode].yf();
float f_movementVelo = f_movementSpeed;
//slow down movement velocity if moving diagnoally
if (int(rNodes[nextNode].xf()) != int(f_xPos) && int(rNodes[nextNode].yf()) != int(f_yPos)) f_movementVelo = f_movementVelo / 1.41;
if ((int)rNodes[nextNode].xf() != (int)f_xPos && int(rNodes[nextNode].yf()) != (int)f_yPos) f_movementVelo = f_movementVelo / 1.41; //slow down movement velocity if moving diagnoally
f_xPos += i_direction(f_xPosNext-f_xPos, f_movementVelo) * f_movementVelo;
f_yPos += i_direction(f_yPosNext-f_yPos, f_movementVelo) * f_movementVelo;
turnTo(f_xPos-f_xPosNext, f_yPos-f_yPosNext, 1);
turnTo(f_xPos-f_xPosNext, f_yPos-f_yPosNext, map(nextNode, 0, rNodes.length, 4, 1)); //lets them turn faster when they start their journey (looks like more motivation)
if (abs(f_yPos - f_yPosNext) < f_movementVelo && abs(f_xPos - f_xPosNext) < f_movementVelo) {
f_yPos = f_yPosNext;
@@ -365,13 +312,15 @@ class Citizen extends Entity {
nextNode++;
}
} else {
b_moving = false;
//v2_direction =
nextNode = 0;
if (!b_randomRun) {
//check if standing on an other citizens position
//check if standing on an other citizens position?
} else {
goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
//goTo((int)random(0, pg_map.width), (int)random(0, pg_map.height));
goToRandom();
}
}
}
@@ -393,6 +342,59 @@ class Citizen extends Entity {
pg_map.popStyle();
}
}
//moved this all the way down, extracted from old goTo(), hoping to never see again
boolean b_pathFindKaputt;
float nodeDistance;
void getNodeDistance(float x, float y) { //circles around x, y until it finds the nearest node
nodeDistance = 1.0f;
while (gs.getNodeAt(x, y, 0, nodeDistance) == null && nodeDistance < i_maxNodeDistance) {
nodeDistance++;
}
if (nodeDistance >= i_maxNodeDistance) {
b_pathFindKaputt = true;
}
}
void preparePath(int x, int y) { //tests if paths are available (to prevent failing on encapsuled areas)
int spread = 0;
boolean works = false;
while (!works && !b_pathFindKaputt) {
works = true;
getNodeDistance(f_xPos, f_yPos);
if (b_pathFindKaputt) break;
startNodeID = gs.getNodeAt(f_xPos, f_yPos, 0, nodeDistance).id();
getNodeDistance(x, y);
if (b_pathFindKaputt) break;
endNodeID = gs.getNodeAt(x, y, 0, nodeDistance).id();
if (pathFinder.search(startNodeID, endNodeID, true) == null) {
works = false;
spread += i_spreadSteps;
x+= spread;
y+= spread;
}
if (spread >= i_spreadSteps * i_maxNodeDistance) b_pathFindKaputt = true;
}
}
void getPath() {
if (!b_pathFindKaputt) {
pathFinder.search(startNodeID, endNodeID, true);
rNodes = pathFinder.getRoute(); //this is the array i want here
nextNode = 0; //necessary for move()
b_moving = true;
} else {
rescuePath();
}
}
void rescuePath() {
b_pathFindKaputt = false;
//teleport somewhere and go home - needs better solution!!! maybe give a little push?
int randomNodeId = (int)random(0, gNodes.length);
f_xPos = (int)gNodes[randomNodeId].x();
f_yPos = (int)gNodes[randomNodeId].y();
//goTo((int)houses.get(i_home).v2_center.x, (int)houses.get(i_home).v2_center.y);
goToRandom();
}
}

View File

@@ -9,7 +9,7 @@ void initInteractables() {
interactables[i] = new Interactable("Interactable", "Content");
}
for (int i = 0; i < interactables.length; i++) {
interactables[i].spawn(citizen[int(random(0, citizen.length))].i_home);
interactables[i].spawn(citizen[(int)random(0, citizen.length)].i_home);
}
}
@@ -30,9 +30,9 @@ class Entity {
float f_xPos, f_yPos, f_xSpawn, f_ySpawn;
float f_angle;
int i_diameter = 10;
int i_diameter = 20;
int i_collBoundX, i_collBoundY, i_collBoundW, i_collBoundH;
int i_nameSize = 12;
int i_nameSize = 24;
int i_location; //0: at home. 1: outside. 2: at work. 3: in church. 4: at a friends place .. etc
@@ -42,10 +42,9 @@ class Entity {
color c_stroke = color(255, 255, 255);
PVector v2_direction = new PVector(0, 0);
Entity() {
Entity(){
}
void spawn(int house) { //generic spawn
PVector v2_spawnPoint = houses.get(house).v2_randomSpawnPoint();
f_xSpawn = v2_spawnPoint.x;
@@ -98,6 +97,7 @@ class Entity {
v2_direction.y = y;
}
}
void turn() {
f_angle = v2_direction.heading();
if (!(abs(int(v2_direction.heading() * 1000) - int(v2_turnBuffer.heading()*1000)) < 100)) {
@@ -107,8 +107,6 @@ class Entity {
}
}
void display() {
}
}

View File

@@ -26,7 +26,7 @@ void initHouses() {
img_houses.loadPixels();
for (int x = 0; x < img_houses.width; x++) {
for (int y = 0; y < img_houses.height; y++) {
if (int(red(img_houses.pixels[y*img_houses.width+x])) == 187) { //red must be 187 for a pixel to be part of a house
if ((int)red(img_houses.pixels[y*img_houses.width+x]) == 187) { //red must be 187 for a pixel to be part of a house
houses.add(new House(x, y));
img_houses.updatePixels();
img_houses.loadPixels();
@@ -37,7 +37,7 @@ void initHouses() {
img_houses.updatePixels();
for (House house : houses) {
//give houses their respective relative size (biggest house = 100)
house.i_size = int(map(house.i_size, 0, i_biggestHouseSize, 0, 100));
house.i_size = (int)map(house.i_size, 0, i_biggestHouseSize, 0, 100);
//create ascii map in s_map
for (PVector point : house.v2d_points) { //create ascii map in s_map
s_map[int(point.y/i_sMapReso)] = replaceCharAt_v1(s_map[int(point.y/i_sMapReso)], int(point.x/i_sMapReso), '#');

View File

@@ -11,7 +11,7 @@ void initPathFinding() {
nodeSize = 5.0f;
gs = new Graph();
makeGraphFromImage(gs, img_houses, int(img_houses.width * f_nodeResolution), int(img_houses.height * f_nodeResolution), true);
gNodes = gs.getNodeArray();
//gNodes = gs.getNodeArray();
gs.compact();
gNodes = gs.getNodeArray();
gEdges = gs.getAllEdgeArray();

View File

@@ -11,13 +11,25 @@ int i_hours;
int i_minutes;
int i_startMinutes;
int i_flexibleTime;
boolean b_pauseTime;
boolean b_changeTime;
void initTime() {
i_hours = 5;
i_minutes = 0;
i_startMinutes = millis();
}
boolean b_pauseTime;
boolean b_changeTime;
int getFlexTime(int hour, int minute) {
return (hour*60+minute);
}
void setTime(int hours, int minutes) {
i_hours = hours;
i_minutes = minutes;
}
void time() {
//calculate time
if (!b_changeTime) {
@@ -50,77 +62,9 @@ void time() {
}
}
//time events
if ((i_flexibleTime >= getFlexTime(0, 0) && i_flexibleTime < getFlexTime(6, 0)) || i_flexibleTime > getFlexTime(23,0)) {
buttons[6].i_x = i_windowW/2-85;
buttons[6].i_y = i_skipNightButtonY;
textSize(10);
buttons[6].i_tx = buttons[6].i_x + buttons[6].i_w/2 - (int)(textWidth(buttons[6].s_text) /2);
} else {
buttons[6].i_x = -1000;
buttons[6].i_y = -1000;
buttons[6].i_tx = -1000;
}
if ((i_flexibleTime >= getFlexTime(0, 0) && i_flexibleTime < getFlexTime(6, 0)) || i_flexibleTime > getFlexTime(23, 0)) buttons[0].b_active = true;
else buttons[0].b_active = false;
}
/*
Simple DateFormat Format Codes
G Era designator AD
y Year in four digits 2001
M Month in year July or 07
d Day in month 10
h Hour in A.M./P.M. (1~12) 12
H Hour in day (0~23) 22
m Minute in hour 30
s Second in minute 55
S Millisecond 234
E Day in week Tuesday
D Day in year 360
F Day of week in month 2 (second Wed. in July)
w Week in year 40
W Week in month 1
a A.M./P.M. marker PM
k Hour in day (1~24) 24
K Hour in A.M./P.M. (0~11) 10
z Time zone Eastern Standard Time
' Escape for text Delimiter
" Single quote
Date and Time Conversion Characters
Character Description Example
c Complete date and time Mon May 04 09:51:52 CDT 2009
F ISO 8601 date 2004-02-09
D U.S. formatted date (month/day/year) 02/09/2004
T 24-hour time 18:05:19
r 12-hour time 06:05:19 pm
R 24-hour time, no seconds 18:05
Y Four-digit year (with leading zeroes) 2004
y Last two digits of the year (with leading zeroes) 04
C First two digits of the year (with leading zeroes) 20
B Full month name February
b Abbreviated month name Feb
m Two-digit month (with leading zeroes) 02
d Two-digit day (with leading zeroes) 03
e Two-digit day (without leading zeroes) 9
A Full weekday name Monday
a Abbreviated weekday name Mon
j Three-digit day of year (with leading zeroes) 069
H Two-digit hour (with leading zeroes), between 00 and 23 18
k Two-digit hour (without leading zeroes), between 0 and 23 18
I Two-digit hour (with leading zeroes), between 01 and 12 06
l Two-digit hour (without leading zeroes), between 1 and 12 6
M Two-digit minutes (with leading zeroes) 05
S Two-digit seconds (with leading zeroes) 19
L Three-digit milliseconds (with leading zeroes) 047
N Nine-digit nanoseconds (with leading zeroes) 047000000
P Uppercase morning or afternoon marker PM
p Lowercase morning or afternoon marker pm
z RFC 822 numeric offset from GMT -0800
Z Time zone PST
s Seconds since 1970-01-01 00:00:00 GMT 1078884319
Q Milliseconds since 1970-01-01 00:00:00 GMT 1078884319047
*/

495
UI.pde
View File

@@ -1,19 +1,21 @@
int i_buttonCount = 7;
int i_uiX, i_uiY, i_uiW, i_uiH;
int i_uiOffsetX, i_uiOffsetY, i_uiOffsetStartX, i_uiOffsetStartY, i_initUiY;
Button buttons[] = new Button[i_buttonCount];
float f_mouseZoomEvent;
boolean b_mapZoom;
int i_debugTextSize = 10;
int i_debugButtonWidth = 100;
int i_debugButtonHeight = i_debugTextSize;
int i_debugButtonCorner = 5;
int i_debugButtonPadding = 20;
int i_debugMenuPadding = 15;
int i_debugMenuX = 15;
int i_debugMenuY = 15;
int i_debugMenuW = i_debugButtonWidth + 2 * i_debugMenuPadding;
int i_debugMenuH;
int i_debugMenuButtonC;
int i_debugButtonPadding = 10;
int i_debugButtonMenuPadding = 15;
int i_debugButtonMenuX = 15;
int i_debugButtonMenuY = 150;
int i_debugButtonMenuW = i_debugButtonWidth + 2 * i_debugButtonMenuPadding;
int i_debugButtonMenuH;
int i_debugButtonMenuButtonC;
float f_timeBoxCenterX;
float f_timeBoxX;
@@ -22,42 +24,160 @@ float f_timeBoxW;
float f_timeBoxH = 34;
float f_timeBoxCorner = 6;
int i_iconX, i_iconY, i_iconW, i_iconH, i_iconCorner;
int i_uiTransparency = 200;
String s_timeString;
boolean b_mouseChangeMapOffset, b_mouseChangeUiHeight;
boolean b_hoverUI;
int i_changeTimeMouseX;
boolean b_drag;
boolean b_selectCitizen; //?????
PImage img_help, img_spectate, img_control, img_magplus, img_magminus;
boolean b_control; //?????
int i_mapViewToMap(int mouse, int offset) {
if (b_mapZoom) return (mouse-offset)*2;
else return mouse-offset;
}
boolean b_showingHelp;
void showHelp() {
if (!b_showingHelp) {
b_showingHelp = true;
buttons[6].b_active = true;
if (buttons[2].b_active) buttons[2].click();
if (buttons[5].b_active) buttons[5].click();
selectCitizen(0);
}
}
void spectate() {
b_control = false;
b_controlEyeWithMouse = false;
citizen[i_selectedCitizen].b_randomRun = true;
citizen[i_selectedCitizen].b_moving = true;
citizen[i_selectedCitizen].goToRandom();
}
void control() {
b_control = true;
if (i_selectedCitizen == 0) selectCitizen((int)random(0, citizen.length));
b_cameraLock = true;
b_controlEyeWithMouse = true;
if(buttons[4].b_active) buttons[4].click();
zoomIn();
citizen[i_selectedCitizen].b_randomRun = false;
citizen[i_selectedCitizen].b_moving = false;
}
void zoomOut() {
if (!b_mapZoom) {
i_mapW = pg_map.width/2;
i_mapH = pg_map.height/2;
i_mapOffsetX = 0;
i_mapOffsetY = 0;
b_mapZoom = true;
}
}
void zoomIn() {
i_mapW = pg_map.width;
i_mapH = pg_map.height;
i_mapOffsetX -= 3*i_mapOffsetX/4;
i_mapOffsetY -= 3*i_mapOffsetY/4;
b_mapZoom = false;
}
void initUI() {
f_timeBoxCenterX = i_windowW/2;
f_timeBoxY = 10 ;
img_help = loadImage(dataPath("icons/icon_help.png"));
img_spectate = loadImage(dataPath("icons/icon_spectate.png"));
img_control = loadImage(dataPath("icons/icon_control.png"));
img_magplus = loadImage(dataPath("icons/icon_magplus.png"));
img_magminus = loadImage(dataPath("icons/icon_magminus.png"));
i_uiX = 0;
i_uiY = 518;
i_uiW = width;
i_uiH = height - i_uiY;
for (int i = 0; i < i_buttonCount; i++) {
buttons[i] = new Button(i);
}
buttons[0].label("Autoplay");
buttons[1].label("Lock Camera");
buttons[2].label("Debug");
buttons[3].label("Control Eyes");
buttons[4].label("Houses Texts");
buttons[5].label("Pause Time");
buttons[6] = new Button(i_windowW/2-85, i_skipNightButtonY, 170, 50, i_debugButtonCorner, "Nacht überspringen >>", 6);
/*
buttons[0] = new Button(15, 50, 100, i_debugTextSize, i_debugButtonCorner, "Autoplay", 0);
buttons[1] = new Button(15, 70, 100, i_debugTextSize, i_debugButtonCorner, "Lock Camera", 1);
buttons[2] = new Button(15, 90, 100, i_debugTextSize, i_debugButtonCorner, "Debug", 2);
buttons[3] = new Button(15, 110, 100, i_debugTextSize, i_debugButtonCorner, "Control Eyes", 3);
buttons[4] = new Button(15, 130, 100, i_debugTextSize, i_debugButtonCorner, "Houses Texts", 4);
buttons[5] = new Button(15, 150, 100, i_debugTextSize, i_debugButtonCorner, "Pause Time", 5); */
i_debugMenuH = (i_debugMenuButtonC -1) * (i_debugButtonHeight+i_debugButtonPadding) + 2 * i_debugMenuPadding;
i_iconX = int(1.2*i_windowW/20);
i_iconY = 10+i_windowW/40;
i_iconW = i_windowW/20;
i_iconH = i_windowW/20;
i_iconCorner = i_windowW/40;
initButtons();
i_debugButtonMenuH = i_debugButtonMenuButtonC * i_debugButtonHeight + (i_debugButtonMenuButtonC - 1) * i_debugButtonPadding + 2 * i_debugButtonMenuPadding;
f_timeBoxY = 10;
f_timeBoxW = 191;
f_timeBoxCenterX = i_windowW/2;
f_timeBoxX = f_timeBoxCenterX-f_timeBoxW / 2;
}
int i_skipNightButtonY = 50;
int i_uiX, i_uiY, i_uiW, i_uiH;
int i_uiOffsetX, i_uiOffsetY, i_uiOffsetStartX, i_uiOffsetStartY, i_initUiY;
void drawUI() {
//draw
//citizenInfo
if (i_selectedCitizen != 0) {
stroke(5);
fill(200, 220);
rect(60, 200, 250, 350);
strokeWeight(0);
fill(0);
textSize(40);
text(citizen[i_selectedCitizen].s_name, 80,250);
textSize(25);
text(citizen[i_selectedCitizen].s_gender, 80,290);
text("Alter: " + citizen[i_selectedCitizen].i_age, 80,320);
fill(citizen[i_selectedCitizen].c_color);
rect(100,350,175,175);
}
//help menu
if (b_showingHelp) {
rectMode(CENTER);
fill(255, 180);
rect(width/2, height/2, 570, 770, 20);
rectMode(CORNER);
imageMode(CENTER);
image(img_helptext, width/2, height/2);
imageMode(CORNER);
}
//debug button-menu
if (!b_rundgang) {
stroke(1);
fill(127, 127, 127, 127);
rect(i_debugButtonMenuX, i_debugButtonMenuY, i_debugButtonMenuW, i_debugButtonMenuH);
strokeWeight(0);
textSize(i_debugTextSize);
for (int i = 0; i < debugButtons.length; i++) {
debugButtons[i].display();
}
}
noStroke();
//normal buttons
for (int i = 0; i < buttons.length; i++) {
buttons[i].display();
}
//icons
imageMode(CENTER);
image(img_help, i_iconX, i_iconY, i_iconW, i_iconH);
if (buttons[2].b_active) image(img_spectate, 2* i_iconX, i_iconY, i_iconW, i_iconH);
if (buttons[3].b_active) image(img_control, 2* i_iconX, i_iconY, i_iconW, i_iconH);
if (buttons[4].b_active) image(img_magplus, 3* i_iconX, i_iconY, i_iconW, i_iconH);
if (buttons[5].b_active) image(img_magminus, 3* i_iconX, i_iconY, i_iconW, i_iconH);
imageMode(CORNER);
//camera tracking
if (b_cameraLock) {
if (i_selectedCitizen != 0) {
@@ -71,30 +191,20 @@ void drawUI() {
}
}
//draw
//debugmenu
stroke(1);
fill(127, 127, 127, 127);
rect(i_debugMenuX, i_debugMenuY, i_debugMenuW, i_debugMenuH);
//buttons
strokeWeight(0);
textSize(i_debugTextSize);
for (int i = 0; i < buttons.length; i++) {
buttons[i].display();
}
//buttons[buttons.length-1].display();
//clock
if (b_realTime) {
s_timeString = "Tag " + i_days + ", " + String.format("%02d", hour()) + ":" + String.format("%02d", minute()) + ":" + String.format("%02d", second());
} else {
s_timeString = "Tag " + i_days + ", " + nf(i_hours, 2, 0) + ":" + nf(i_minutes, 2, 0);
}
textSize(30);
textAlign(LEFT);
f_timeBoxW = textWidth(s_timeString)+6;
f_timeBoxX = f_timeBoxCenterX-textWidth(s_timeString) / 2;
fill(255, i_uiTransparency);
rect(f_timeBoxX, f_timeBoxY, f_timeBoxW, f_timeBoxH, f_timeBoxCorner);
fill(0);
textSize(30);
text(s_timeString, f_timeBoxX+3, f_timeBoxY - 8 + f_timeBoxH);
//debug
@@ -134,6 +244,7 @@ void drawUI() {
//"Outside",
//"Mood: "
};
textSize(i_debugTextSize);
int line = 0;
int maxLinesPerColumn = i_uiH/i_debugTextSize;
@@ -150,166 +261,84 @@ void drawUI() {
}
}
void buttonFunctions(int s) {
switch (s) {
case(0):
b_autoPlay = !b_autoPlay;
//citizen[i_selectedCitizen].b_randomRun = b_autoPlay;
//citizen[i_selectedCitizen].b_moving = b_autoPlay;
if (b_autoPlay) {
for (int i = 0; i < citizen.length; i++) {
if (!citizen[i].b_moving) {
if (citizen[i].nextNode == 0) {
b_makeThemGo = true;
//citizen[i].goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)), 10);
} else {
citizen[i].b_moving = true;
}
}
if (!citizen[i].b_randomRun) {
citizen[i].b_randomRun = true;
}
}
} else {
for (int i = 0; i < citizen.length; i++) {
citizen[i].b_moving = false;
citizen[i].b_randomRun = false;
citizen[i].b_turning = false;
}
}
break;
case(1):
b_cameraLock = !b_cameraLock;
break;
case(2):
b_debug = !b_debug;
//dirty
for (int i = 0; i < citizen.length; i++) {
citizen[i].c_stroke = color(int(!b_debug)*255);
}
for (int i = 0; i < interactables.length; i++) {
interactables[i].c_stroke = color(int(!b_debug)*255);
}
break;
case(3):
b_controlEyeWithMouse = !b_controlEyeWithMouse;
break;
case(4):
b_housesTexts = !b_housesTexts;
break;
case(5):
b_pauseTime = !b_pauseTime;
break;
case(6):
i_flexibleTime = getFlexTime(6, 0);
i_minutes = 0;
i_hours = 6;
break;
default:
break;
void keyPressed() {
if (key == 'r') {
b_rundgang = !b_rundgang;
}
if (key == 's') {
save("screenshot.png" + str(millis()));
}
}
int getFlexTime(int hour, int minute) {
return (hour*60+minute);
}
class Button {
int i_x, i_y, i_w, i_h, i_c, i_id, i_tx;
int i_margin = 5;
String s_text;
Button(int id) {
i_id = id;
i_x = i_debugMenuX + i_debugMenuPadding;
i_y = i_debugMenuY + i_debugMenuPadding + (i_debugButtonPadding + i_debugButtonHeight) * i_id;
i_w = i_debugButtonWidth;
i_h = i_debugButtonHeight;
i_c = i_debugButtonCorner;
i_debugMenuButtonC++;
}
void label(String lab) {
s_text = lab;
textSize(10);
i_tx = i_x + (i_w/2) - (int)(textWidth(s_text) /2);
}
Button(int x, int y, int w, int h, int corner, String text, int id) {
i_id = id;
i_x = x;
i_y = y;
i_w = w;
i_h = h;
i_c = corner;
s_text = text;
textSize(10);
i_tx = i_x + i_w/2 - (int)(textWidth(s_text) /2);
}
boolean hover() {
if (mouseX > i_x - i_margin && mouseX < i_x+i_w + i_margin && mouseY > i_y - i_margin && mouseY < i_y+i_h + i_margin) return true;
else return false;
}
void click() {
buttonFunctions(i_id);
}
void display() {
fill(150, 170, 250, 150);
rect(i_x, i_y, i_w, i_h, i_c);
fill(0);
text(s_text, i_tx, i_y + i_h/2 + i_debugTextSize/2.5);
}
}
boolean b_mouseChangeMapOffset, b_mouseChangeUiHeight;
boolean b_hoverUI;
int i_changeTimeMouseX;
boolean b_selectCitizen;
boolean b_drag;
void mousePressed() {
if (mouseButton == LEFT) {
boolean clickUI = false;
// click buttons
if (mouseX >= i_uiX && mouseX <= i_uiX+i_uiW && mouseY >= i_uiY-10 && mouseY <= i_uiY+10) { //drag and drop debug window size
b_triggerButton = false; //bad
for (int i = 0; i < buttons.length; i++) {
if (buttons[i].hover()) {
buttons[i].click();
clickUI = true;
}
}
if (!b_rundgang) {
for (int i = 0; i < debugButtons.length; i++) {
if (debugButtons[i].hover()) {
debugButtons[i].click();
clickUI = true;
}
}
}
//drag and drop debug window size
if (mouseX >= i_uiX && mouseX <= i_uiX+i_uiW && mouseY >= i_uiY-10 && mouseY <= i_uiY+10) {
b_mouseChangeUiHeight = true;
i_uiOffsetStartY = mouseY;
i_initUiY = i_uiY;
clickUI = true;
}
for (int i = 0; i < buttons.length; i++) { // click buttones
if (buttons[i].hover()) {
buttons[i].click();
if (!b_rundgang) {
if (mouseX > f_timeBoxX && mouseX < f_timeBoxX + f_timeBoxW && mouseY > f_timeBoxY && mouseY < f_timeBoxY + f_timeBoxH) { //drag time
clickUI = true;
i_changeTimeMouseX = mouseX;
b_changeTime = true;
}
}
if (mouseX > f_timeBoxX && mouseX < f_timeBoxX + f_timeBoxW && mouseY > f_timeBoxY && mouseY < f_timeBoxY + f_timeBoxH) { //drag time
clickUI = true;
i_changeTimeMouseX = mouseX;
b_changeTime = true;
}
if (!clickUI) {
int selectedCitizen = i_selectedCitizen; //leftclick select citizen
b_selectCitizen = false;
for (int i = 0; i < citizen.length; i++) {
if (selectedCitizen != i) {
if (i_mapViewToMap(mouseX, i_mapOffsetX)+10 >= citizen[i].f_xPos - citizen[i].i_diameter/2 && i_mapViewToMap(mouseX, i_mapOffsetX)-10 <= citizen[i].f_xPos + citizen[i].i_diameter/2
&& i_mapViewToMap(mouseY, i_mapOffsetY)+10 >= citizen[i].f_yPos - citizen[i].i_diameter/2 && i_mapViewToMap(mouseY, i_mapOffsetY)-10 <= citizen[i].f_yPos + citizen[i].i_diameter/2) {
b_selectCitizen = true;
selectCitizen(i);
if ( !b_control) {
int selectedCitizen = i_selectedCitizen; //leftclick select citizen
b_selectCitizen = false;
for (int i = 0; i < citizen.length; i++) {
if (selectedCitizen != i) {
if (i_mapViewToMap(mouseX, i_mapOffsetX)+30 >= citizen[i].f_xPos - citizen[i].i_diameter/2 && i_mapViewToMap(mouseX, i_mapOffsetX)-30 <= citizen[i].f_xPos + citizen[i].i_diameter/2
&& i_mapViewToMap(mouseY, i_mapOffsetY)+30 >= citizen[i].f_yPos - citizen[i].i_diameter/2 && i_mapViewToMap(mouseY, i_mapOffsetY)-30 <= citizen[i].f_yPos + citizen[i].i_diameter/2) {
b_selectCitizen = true;
selectCitizen(i);
//zoom in? no
}
}
}
if (!b_selectCitizen) {
//buttonFunctions(2, false);
selectCitizen(0);
}
if (!b_rundgang) {
if (!b_cameraLock || i_selectedCitizen == 0) {
b_mouseChangeMapOffset = true;
i_mapOffsetStartX = mouseX - i_mapOffsetX;
i_mapOffsetStartY = mouseY - i_mapOffsetY;
}
}
} else {
citizen[i_selectedCitizen].goTo(constrain(i_mapViewToMap(mouseX, i_mapOffsetX), 0, pg_map.width), constrain(i_mapViewToMap(mouseY, i_mapOffsetY), 0, pg_map.height));
}
if(!b_selectCitizen){
selectCitizen(0);
}
}
}
if (mouseButton == CENTER) {
if (!b_rundgang) {
if (!b_cameraLock || i_selectedCitizen == 0) {
b_mouseChangeMapOffset = true;
i_mapOffsetStartX = mouseX - i_mapOffsetX;
@@ -317,50 +346,31 @@ void mousePressed() {
}
}
}
if (mouseButton == CENTER) {
if (!b_cameraLock || i_selectedCitizen == 0) {
b_mouseChangeMapOffset = true;
i_mapOffsetStartX = mouseX - i_mapOffsetX;
i_mapOffsetStartY = mouseY - i_mapOffsetY;
}
}
if (mouseButton == RIGHT) {
// if(citizen[i_selectedCitizen].hover){
//}
//if (!b_autoPlay) {
// citizen[i_selectedCitizen].b_randomRun = false;
// citizen[i_selectedCitizen].b_moving = false;
//}
if (!citizen[i_selectedCitizen].b_talking) {
if (mouseButton == RIGHT && !b_rundgang) {
if (!citizen[i_selectedCitizen].b_talking && i_selectedCitizen != 0) {
citizen[i_selectedCitizen].goTo(constrain(i_mapViewToMap(mouseX, i_mapOffsetX), 0, pg_map.width), constrain(i_mapViewToMap(mouseY, i_mapOffsetY), 0, pg_map.height));
citizen[i_selectedCitizen].turnTo(citizen[i_selectedCitizen].f_xPos-constrain(i_mapViewToMap(mouseX, i_mapOffsetX), 0, pg_map.width), citizen[i_selectedCitizen].f_yPos-constrain(i_mapViewToMap(mouseY, i_mapOffsetY), 0, pg_map.height), 4);
}
}
}
int i_mapViewToMap(int mouse, int offset) {
if (b_mapZoom) return (mouse-offset)*2;
else return mouse-offset;
}
void mouseDragged() {
b_drag = true;
if (b_mouseChangeMapOffset) {
i_mapOffsetX = (mouseX - i_mapOffsetStartX);
i_mapOffsetY = (mouseY - i_mapOffsetStartY);
}
if (b_mouseChangeUiHeight) {
i_uiY = mouseY - i_uiOffsetStartY + i_initUiY;
if (i_uiY > height) i_uiY = i_windowH;
i_uiH = i_windowH - i_uiY;
//hook buttons to ui panel
}
if (b_changeTime) {
i_flexibleTime += mouseX-i_changeTimeMouseX;
i_changeTimeMouseX = mouseX;
if (!b_rundgang) {
if (b_mouseChangeMapOffset) {
i_mapOffsetX = (mouseX - i_mapOffsetStartX);
i_mapOffsetY = (mouseY - i_mapOffsetStartY);
}
if (b_mouseChangeUiHeight) {
i_uiY = mouseY - i_uiOffsetStartY + i_initUiY;
if (i_uiY > height) i_uiY = i_windowH;
i_uiH = i_windowH - i_uiY;
//hook buttons to ui panel
}
if (b_changeTime) {
i_flexibleTime += mouseX-i_changeTimeMouseX;
i_changeTimeMouseX = mouseX;
}
}
}
void mouseReleased() {
@@ -374,39 +384,18 @@ void mouseReleased() {
//b_selectCitizen = false;
}
//bad
//int maxScale = 5;
//float zoomFactor = 0.4;
//int i_imgCenterX;
//int i_imgCenterY;
int i_mapScale = 1;
boolean b_mapZoom;
float e;
void mouseWheel(MouseEvent event) {
e = event.getAmount();
if (!b_rundgang) {
f_mouseZoomEvent= event.getAmount();
if (e == -1) {
i_mapScale+=1;
}
if (e == 1) {
i_mapScale-=1;
}
constrain(i_mapScale, 0, 2);
switch(int(e)) {
case 1:
if (!b_mapZoom) {
i_mapW = pg_map.width/2;
i_mapH = pg_map.height/2;
i_mapOffsetX -= 3*i_mapOffsetX/4;
i_mapOffsetY -= 3*i_mapOffsetY/4;
b_mapZoom = true;
switch((int)f_mouseZoomEvent) {
case 1:
zoomOut();
break;
case -1:
zoomIn();
break;
}
break;
case -1:
i_mapW = pg_map.width;
i_mapH = pg_map.height;
b_mapZoom = false;
break;
}
}

47
Util.pde Normal file
View File

@@ -0,0 +1,47 @@
class iPVector {
int x, y, z;
iPVector(int getx, int gety) {
x = getx;
y = gety;
}
iPVector(int getx, int gety, int getz) {
x = getx;
y = gety;
z = getz;
}
}
void pre() {
//window resize event
if (i_windowW != width || i_windowH != height) {
i_windowW = width;
i_windowH = height;
i_uiY = i_windowH - i_uiH;
i_uiW = i_windowW;
i_uiH = i_windowH - i_uiY;
buttons[0].i_x = i_windowW/2-buttons[0].i_w/2;
buttons[0].setLabel(buttons[0].s_label);
f_timeBoxCenterX = i_windowW/2;
f_timeBoxCenterX = i_windowW/2;
f_timeBoxX = f_timeBoxCenterX-f_timeBoxW / 2;
i_iconX = int(1.2*i_windowW/20);
i_iconY = 10+i_windowW/40;
i_iconW = i_windowW/20;
i_iconH = i_windowW/20;
i_iconCorner = i_windowW/40;
for (int i = 1; i < 6; i++) {
buttons[i].i_y = i_iconY-i_iconH/2;
buttons[i].i_w = i_iconW;
buttons[i].i_h = i_iconH;
buttons[i].i_corner = i_iconCorner;
}
buttons[1].i_x = i_iconX-i_iconW/2;
buttons[2].i_x = 2*i_iconX-i_iconW/2;
buttons[3].i_x = 2*i_iconX-i_iconW/2;
buttons[4].i_x = 3*i_iconX-i_iconW/2;
buttons[5].i_x = 3*i_iconX-i_iconW/2;
}
}

View File

@@ -3,6 +3,14 @@ import processing.net.*;
int i_citizenAmount = 100;
/*
todo
!!!FIX ONE SIDED COLOR TRANSMISSION!!!
steady control over selectedCitizen. right click on house to enter it.
reset view and selectCitizen(0) after long time no input
fix zoom, add zoom level
saarbrücken map
add ui panel for selected citizen in non-debug
enter house
dominanz
wächst mit anzahl der am tag durchgeführten kommunikationen
@@ -23,12 +31,21 @@ todo
ignore-liste
ziel: möglichst viele zur eigenen farbe bekehren
alte ideen:
//citizen kann "lookat" mit 180° winkel mit bullseye förmigen gradient welches die chance etwas zu bemerken darstellt
//setFocus(entity) durch geräusche auch von objekten ausserhalb des sichtfeldes aufrufbar
//citizen kann "focus", guckt mit den augen in die richtung. 2. augen-vektor! kopf wird mitgedreht je nach "openness"
//citizen kann "take", nimmt gegenstand in die hand. arraylist "holds" - gegenstände in der hand
*/
//settings
boolean b_rundgang = false;
boolean b_rundgang = true;
boolean b_smallerImage = false ; //broken
boolean b_loadSun = false; //load sun from web-api instead of local json file (local file is adressed to january 4th 2019. might implement a check that downloads today's information only once...
int i_sMapReso = 8; //the higher the smaller the reso, 2 is best quality but takes some time to download
@@ -38,11 +55,11 @@ int i_timeTickMS = 200; //milliseconds how long until next minute ticks on clock
float f_walkSpeedMin = 2;
float f_walkSpeedMax = 3;
float f_nodeResolution = 0.2; //defines density of path-finding nodes, multiplied with resolution
float f_nodeResolution = 0.1; //defines density of path-finding nodes, multiplied with resolution
int i_pathAlgorithm = 4;
boolean b_cameraLock = true;
boolean b_cameraLock = false;
boolean b_autoPlay = false;
boolean b_realTime = false;
boolean b_controlEyeWithMouse;
@@ -51,29 +68,25 @@ boolean b_debug = false;
boolean b_drawNodes = false;
int i_windowW, i_windowH, i_viewportW, i_viewportH;
PImage img_helptext;
Server server;
Client client;
void rundgang() {
i_debugMenuX = -200;
}
void setup() {
//fullScreen();
size(700, 600);
server = new Server(this, 5210);
//blendMode(MULTIPLY);
fullScreen();
//size(700, 600);
i_windowW = width;
i_windowH = height;
img_map = loadImage(dataPath("map/map.png"));
if (b_smallerImage) img_houses = loadImage(dataPath("map/houses_with_borders_small.png"));
else img_houses = loadImage(dataPath("map/houses_with_borders.png"));
img_streets = loadImage(dataPath("map/streets.png"));
server = new Server(this, 5210);
img_map = loadImage(dataPath("map/map2.png"));
img_houses = loadImage(dataPath("map/houses_without_borders2.png"));
pg_map = createGraphics(img_houses.width, img_houses.height);
@@ -82,8 +95,10 @@ void setup() {
i_mapW = pg_map.width;
i_mapH = pg_map.height;
if (b_rundgang) rundgang();
img_helptext = loadImage("helptext.png");
initTime();
initHouses();
initPathFinding();
@@ -91,23 +106,30 @@ void setup() {
initCitizen();
initInteractables();
initUI();
zoomOut();
}
void pre() {
if (i_windowW != width || i_windowH != height) {
// Sketch window has resized
i_windowW = width;
i_windowH = height;
i_uiY = height - i_uiH;
i_uiW = width;
i_uiH = height - i_uiY;
f_timeBoxCenterX = width/2;
f_timeBoxY = 10 ;
}
}
String s_fromClient;
int i_mapLevelTransferC;
int i_makeThemGoC;
int i_idleFrames;
iPVector iv2_mouseBufferIdle = new iPVector(0, 0);
void idleRecord(){
if(mouseX == iv2_mouseBufferIdle.x && mouseY == iv2_mouseBufferIdle.y){
i_idleFrames++;
if(i_idleFrames >= 5000){
buttons[1].click();
}
} else {
i_idleFrames = 0;
}
iv2_mouseBufferIdle.x = mouseX;
iv2_mouseBufferIdle.y = mouseY;
}
void draw() {
background(127);
for (int i = 0; i < i_citizenAmount*3; i++){ //so bad
@@ -117,7 +139,8 @@ void draw() {
time();
if (b_makeThemGo) {
citizen[i_makeThemGoC].goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
//citizen[i_makeThemGoC].goTo(int(random(0, pg_map.width)), int(random(0, pg_map.height)));
citizen[i_makeThemGoC].goToRandom();
i_makeThemGoC ++;
if (i_makeThemGoC >= citizen.length) {
b_makeThemGo = false;
@@ -166,7 +189,6 @@ void draw() {
for (int i = 0; i < interactables.length; i++) {
interactables[i].update();
interactables[i].display();
}
for (int i = 0; i < citizen.length; i++) {
@@ -187,4 +209,5 @@ void draw() {
pg_map.endDraw();
image(pg_map, i_mapOffsetX, i_mapOffsetY, i_mapW, i_mapH);
drawUI();
idleRecord();
}

BIN
data/helptext.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
data/icons/icon_control.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
data/icons/icon_help.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
data/icons/icon_magplus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

BIN
data/map/map2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 MiB

View File

@@ -1,135 +1,270 @@
...................###....................................................................................#####....##.....#...............................................###...#.#########......................................................
.........................###...............................................................................###..........###................................................##...###.######.......................................................
.........................####..........................................................................................#####...................................................#####..####.......................................................
.........................####.............................................................##.........###................###.....................................................####...##........................................................
..........................##............................................................####.........####...............#.........................................................##.###...###...................................................
........................................................................................#####........####.........................................##................................####...###...................................................
####.........................................................................###.........##......................................................###................................###.....##...................................................
#####.....................###...#####.......####............................####...............................................................######............................................................................................
#####....................####...#####.......####.............................###...........................................................##########............................................................................................
..#.....................#####....####.......####.............................###........................................................############.#...........##..............................................................................
.###.##.................##............................................................................................................###########..###...##...#######.............................................#..............................
.#######.................#..........................................................................................................#######..#.....####.##########.###.###......................................###..............................
....####...........................................................................................................................#######.........####.##.###########.###.##.................................######..........................##.
......###..................................###.....................................................................................####.....####....###..################.####................................#####.........................####.
....#####..................................###...............................................................................####..#####.#######....#################.###.####................................###...........................####.
....####......................................###...####.....................................................................####...####.#######......######....##.###########...##..........................................................###.
.........................####.................###...####........................##...........................................#####..####.######.....#######......##.########....###..............................................................
#........................####..............###.......###.......................####...................................###.....##.....##..##....##.####.###.......######..##.....###..............................................................
#........................####..............###.###.###..............###.........###..................................####.....#...#####..####.###.#######.........####..........###..............................................................
#.................###.........###..........###.###.###..............####........##...............................###.####.........###########.####.##..........##..###..........###..............................................................
........###.......######......###..................###...##.....###.####.......................................#.######..............########..##..............###..#...........###..###.........................................................
..#....####......#######......######..........###.......###.....###.##.......................................##############....####.######........##........#.####.....##.####..###.####.........................................................
####....##.......#######....###..#######......###.......###.....###........................................######.#################.#####......#####.......######.....###.######..#.####.................###..............................###....
#####......##......#####....###..##########...###......##.......###......................................####.#####################.#.#........#####....########......###.#######....##..............##..####...........###...............###....
.#####....###...###..##......###....#######...........###.............................................###############....##########..##..####..###.....####.##...###..###....####.................######.#####.........####...............##.....
..####.....##..######....###.###.........##..###......###..........................................###############....####.........##########....##..#.#####....#####..######.#..................###.##..#####..........###................#.....
...##..........#######..#########............###...................................................###.##########...########....##.##########....##########..########..######....................###...##.####........######.....##......###...#.
..............########...#########..########.####.............................................###...##########.....#########....###.#########...#########....################....................###...#######......####.###.....##......###...#.
..............#########..#########..########..##..............................................###....#######.....######.####...#####............######.....#.##...##########..#####..............###..#########......####.###.............##..##.
..............############.#..#####.########...................................................##...#####.........###.###....#######............###...##########.########...#######...............#############......##...###.....##......##..##.
.................######.###....#####....####...................................................###..###...........###.###..#########...#########.##############.######...##########.........##....############.............##.....##..........#..
...................####.###....#####...........................................................###.................####...########.....#########.##########......###...############........###....####..###................##.##.................
................................#..................................................###.........###.................###.....#######.....#########.####...............#########.##..##........##....###....##...................###.............##.
..................................................................................####..............................###....########.###.........#.#####.....####....#######......####.###...#......###..###...................###..........#####.
..................................................................................###...#######........##...........###...#####.###.####...######.########..####....#####......##############.##...###.####................................#####.
..................................................................................#.....#######........###...........##..#####.##########..#######.#######..####......#..#.....##..###.#########...##..###......................#####.......####.
............................................................................................###.......#####..###...#####.####..####..######.#####....#####..####.........##.....#..###.#..######.......###................####..#####.##....##...
...............................................##...........................................###.......##.#...####..######..#...####....##########............#...........##..#......###.#######.#....#####.....###.......#####..##.....##......#.
##............................................###...............................###########.###..............#####..######......####....####.######......................#####......#.###########....########..###.......##.....##...###.......#.
##..........................................######..............................################..............#####.######.#########....######.#####........................###.##.###.####.######...########..###........#######...#####......#.
...........................................########................#............##############.........###....###########.##########......#####..####........................##.######.##...######.......####..#.....##...#######...####.......#.
.........................................###########.............###............##....................#####..############..#####.....###..######.#####.......................##.###.........#######..................##......####..#####.......#.
...#.....................................###########............#####...........######..............#######.##########...#######.....#####.#####...###...........................########....##.####............###..##.#########.#####..........
.###.....................................#########...........##########.......########...........#########.########......########.....######.####...#............................########.....##.###............###..##.#######..................
#####.....................................#######............##########...###.########..........#########.########.......####.##...#...#####..####...............................########.....#######...........###.....###.............#..#####.
####.....................................#######..............###############.######............####.#########.###.......########..###.#####.######..............................###........#########.........................####...####..#####.
###.....................................######................###############.............##.....##...######..#######....#.######..########.######..................................##.#....###...###...............########.#####..######.#####.
##......................................#####.................#############.............####............###...#######......#####...#############...##...........................##.######...###.....................########..##...###.###....##.
.........................................###..................########..###..........########.....##....###....######....#########...##.########...###.......................##.##.######....###...............###..#####.##.......###..##..####.
..............................................................##...########..........########.######.....###...####......############.##...##......####............###.......##.##.##..##....#.................####................###..##.#####.
................................................................###########......###..####.....#######.##.###.......###..############.##............####......###..####.##......###...###..######.............#####.................##..##.#####.
.......####.....................................................#########.....#######.##....######.#######.##.....#####...###########.######.........###.......##..#######......###.####.########...........#######...###...........##..##..###..
.......####.....................................................#######.....#########.......#######.##.####......#######..##################.......#####....##.###...#####..........#############...........###.......###...##.......##.##..####.
.......####.......................########.............####......###.......######..##........#######....###......#######...#######.##########....########..#######.#####..........################..........########..###.####..####.##.##..####.
.....#...................#...#############.............####..............########...##........#####.....####......######...#####...##########.############..###.########.......######..####.###.##....#.....##.#####..###.####..####.##.##.......
...####...............####...#############.............####........#####.#####......##........#####.....####.####.#######...##.....###################.####.#############.....######.####..#####.....###....##.#####..###.##....#..............#.
....###............#######...######....................####......###########..................####.....#####.####..#######..........#####.#######..####.###..####....####....###########..#######...####....##.#####................##.###...###.
....###.........##########...............................#......##########....................#####....###..######.#######........############.########..###.####.....###..###.#########.#######...#.##.....##.................####.##.###...###.
.....##......##########.......................................#####..###.##.#.............##....####...##...######.########...################..########.###.####.....#################..######...###.............##......#########.##.###.......
.....###.....#######........................................####......########............###.######..###...#####..########...####.#########.################.######...#######.########....###....###...........#.##..##..#########............#.
#.....##......###...........................................####......########...........#.##############...##.##.#########...#########.#############.######..######..######.######.####....#..###.#......###.###.##..##..#####..............###.
#......#......#..............................................###......########.....##.####..##############...####.##########..#########.############..#####...##################.#..####......####........###.###.....##..#####............#####.
#............####...............##...........................##.......######.....####.#####..##########..##..####.####.#####....#####################.######...##.##############...###..#....####...#......................####.###.......###....
.............####.............#####.......................................##.....##########...######....###..#####.....#####....#################.###...#####...###############...###..###..####...###......................##..###....#####.....
..............###...........#######............##.................................###..####.........########..####.....##........#########.###########..#####..################...###.####.####....##..###.##.##...########.##...##....###....##.
..............####.........#######............#######........#####.######.......##.....####..........#######..###........##........########..##########..####...##############.......####..###.........###.##.##..#########......##..####....###.
..............####.........#####..............#######........############......####....####..........#######..........#####........####################..####...############..........#.....#...##.....###.##.##..###.###...........####...####..
..............####..........###.................##.##.........####.######...#######..###.............########......########.........##########################..#########......##..............####...........##....................##..#####....
..............####............................................####.######..#########.###.........##..########......########..##......###########..############..#####..........####.............###..............####.###...............####.....
...............##...................................###.......####.####..###########.##..........###..#######......#######..###.......########....########..###..###...###......####.........#................#######.###..............###.......
#...................................................###.......####..###.################.........###..#########....####.########.......#####.#...###.###.######...###..###......###.........###...............#######.########.......####....###.
#...................................................###.......####..#....########.#####..##.......###.#########....#############.......########..#############....###...##....##.#..###.....###....##.........##......############...##.....#.##.
#.............................................................####.......#########.####.###.......###.#########....#############......#########.#####..######......#..........###..####.....##....####.............##..###########....#....##.##.
###..........................#..........................###..................##########.#######....##.######....###.##.##########...###..######.####.......#.................####..###.....####....##..........###.###.########..###.......##....
###........................####.........................###.......##.........##################...###..##..############.#########..#####..######..####.....................#####.##.#......####..###............##..##.########..###....###......
.#.........................####.........................##........####.....##.#..##.#######.####################.##########..###########..######..####....................####..####.....#..###..###......................#####..##....####......
............................#.....................................####.######...#....####.#.####################.########################.#######.####....................###..####.....###......##.................###...#####.......#####......
.....................................................#............################.....####.####################.########################.########.####....##............###..###......#####....................#######...#####...##..####.......
...................................................###.............###############...#.####.#########...######..##..###################...#############...####...........###..###......#####............################..##....####..#..........
..##............................#..............#...###....................####......#######.###.######.##..########.###########...####.....########..##...####............#.####........###....##.......#################.##....####.............
####...........................###............###..####...............#######....##.#######..########.#############..#..####..########.....#####...####....#.........###...####..............####.......##########....###........#.#.............
####............................##...........####..####.............######.###.#######.###.#####.####..###########.###.......#############.#####...####..............###..####...............####.......######........####......####.............
###..............##.........................#####...###.............##########.########...######.####...#######..######...##..####.....####.#####.####...............###.####...#.............##....######.............###...##.####.............
##............#####........................#####....#................######.##..#######....####...##....####...########...###.####..##.####.########..###............########..###..................######.............###.####.##...............
#....#........#####.........######.........####.###...................####..#..#########...###....###....##..###########...#####..####.####..#######.####.....#........#####..#####........#....##...#####.................####..................
....###.......#####........#######.........###.#####..##............####.......##########...###.#####......###########......###...##########.#####.######....###.......####..######.......###...##...##.....................##......####.........
...#####.......#######....##########...........#####.###...........####....##############...#########......#########........###...##.##.####..###..####.....####........##...#####.......####..................................####.####.........
...#####.......########...##########.......###..##..####.........#########################..#########.###..#######........#..........#######...##..##....#..####..............###........####..................................#####.###....##...
..#####.........###################........####...######.........#########################..#.######.####...####........####..........#####...###.......####.###...............#...........#.......#########...................#.###........###..
.#####............###############........##.##...#######.........########################....###.########...##.......#######...#....#####..##...........###...............###......................#########.....................................
#####..##.........###############.......###.....########.........###.####.###########.#####..####.######.............######..####.#######.###..........####..............#####.....................#########.....................................
###....###........##############........###......########............##.###########....####...###.####...............####...#####.####.##.######.......###......###......######....................##########....................................
##.....###........#############..........#.##....########.............#############..#######..########....#..........###....###....#...##.######..##...###......####....######......###......###.................................................
#.......###........############...........###.....#######..............###...######.########...######...####...............###.........##############...##......###....######......#####....####.................................................
........####.......###########............####...########..............####..######.######..#..####.....####........###...###..........##.....########...........#.....####........####.....####............................................##...
.........###.......#########..........#....#.....#######................#########....#########..#....##.####........###....###...#............####.##.###..........###..###.........##.......#............................................####...
..........###......########......#######..........####..............###.####.#####....########......####.####.....####..##..######....................###..........###.............#......................................................####...
........#####......#######.....##########..........##..............####..####.###.....######.##......###.####.....#################.................####..#.........##............###...............................................##.....##....
.......######.........#.........#########..........................####..####.##......######.###......###.###.###.#######.###.#####..####.....####..##...###......................####.............................................####.....###..
.....######.....................##########............##............##...########.##.######.####......####...####.####.##..######..#######....####..##..####...................###.##............................................##.##......###..
...######...................##....########...........####.................####.##################.....######.#####.##..###.##.#############...####.......##..................##.##............###................................###........###..
..######...................###.....#######.........#######................####.#.#########.##.####...#############....#####.################..####...#.......................###..............###.....##.........................###.............
######.....................####...#######...........######.................####..##########...#####.#####..##.##....#######.###########..##...####..###.......................................###.....##.........................................
####.......................####.#######.........##..#####..##...............####.#########....#.########...###.#....############..###.........####..####.....................##.......................##.........................................
.###.......................###.######..........####..#...#####..............#####..#####....###..###.##.....####.....########.##..####..............###.....................####.................................................................
.####......................#########...........####......#####..............######.####....#####.####......######....##..####....#####......####....##......................####..............................####...............................
..###.......................######..............#........######...............#####......#######..##.....########........###..#.######..##########............................................................####...............................
..###........................####.........................#####...............#####.....##########.......########..........####.###################....###................................................................................#......
..............................##.........#................###.............###.#####.#########.#####.......###..###.......######..############..###.....###.....................####........####..........................................####....
........#######........................####..............................####..############...####...##........##...##...#######..######..#####....##..####....................####.###....####...........#..............................###.....
..#############.....................##.####.....................#.........###...######.###....###..#####...........###....######..######..#####...####..###................##.......###....###.....####.####..............................##.....
..#############....................###..##.....................###...............#####........#...#######..........####...#######.###.....####..######..####..............####......##.............####.####....................#...###.......##.
..#######..#####..................#####........................###................####.##.........#######.........#####...########.######..#...#######...####.............####...........##........####..#...###..............####..###.......##.
..#####.....####................########.......................###.................#######.........#######......###.####...##.#####.######...##########...###...............#...........###.###..............###...........#..####..###.......##.
..#####.....####...............##########..................###..#...............#...######....###.########.....#########.......####.######.########..###...###....................#....###.####..............###.........####..#..............##.
...###......######............######.####....##..........#####.................###...#####..#####.######......#####.#####.......###......##.###..#...###...##.#..................####...##.###...................###......###.................##.
...........#######............####.#..####..###.........#######..####.........####....###.######..#..##........###..#####.......##......#########....#####...###.....##..........###.............##.............####.............................
...........#######............###.###.###.#####........########..####..........##........#####..####.................#####..######......####..####......###..###.....###...........#.####.......####.............###.............................
.....#.....#######.............#######....###..........#######...####...................######.#####...........##.########...######......############...####...##....................#####.......##.##..............###..........................
.#####.....#####...............######...#####.......#...###.#.###.##................#...###########...........#######...###..##.#..........####.#####...###...###.......##............###.#.........##..............###.##.......................
#######.....####................###....####.......####...########....###............##...#####.##.............#######...###................###...##.....#####..###.....###...............####.......##.##............#..###......................
#######......................##..#......###......#####....#######...####............##....####................######.....###.....#..######..#.##.####....#####..###....###...............###.###......###.##............###.........###..........
######..................##...###...............#####.......#####....####..................................###########....##....####.######....#######.#########..##...........##.............###........#.###....#.......##...###...###..........
###....................###...####..##.........#####.###.....##...##..##..........................##........#####.####......###.####.#######...######.###..#.###...............###.............##..........##.##..###..........####..###..........
......................####...####.###.......######.####..........###............................####.......#####...#.....#####..##.##########....######.....#..................##....................#.......#######..##......######.............
....................####.##...#######......#####...#####.........###............................###...........##.........######....#####.####....####..###.###.##....#...##.........................###.......#..###.####......#######...........
...................#####.###...######....######....#####.....................................##..#........##.............######...#####..#####....####.###.######...###..###.........###.............##..##..........####.......######...........
#................#####...###....###.....#####.......####.....................................###...##...####..##........#...####.##############....###.##########...###...##....#....###..###...........###..##........#..##......####.........#.
#..............####........###..##......####........##.............#..####..................####...###..########.......###.#####.#########.####.....###..######.....###...#.....###.......###.###.......###..##..##......####.#.....#..........#.
...............####........###........####........................########....##............###....###...####.##.......###.######..####.##.#####....#########...........##.......##.......#######.......##...##.####......##.####................
................#.###....####........#####.............##.........#######..#..###............##.....####.##........###..##..#####..###.....######....#####.............####..................####...............####.........####................
...........#####..###....####........######..........#####........######..###........................#####....#....###......#####...###....#######...####..............###..##................###.................#...........##.................
......##########...#..#.####....#.....#####.........######.........####...###....##...............##..####..####.#####...##..##########.##....#####..##.................#..###...................................................................
.....###########.....#####....####.....####........#######..........####..##....####.............####...########.##......###..##.#####.#####...####.................##......#....................................................................
.....###########.....####....#####.....##........#######............####.....#######.............####....#######....###...######.####..######.####..................###..........................................................................
..................................................................................................................................................................................................................................................................#########################################......#################..######.........########......######......########.......############................######.........#######...###..........###.#######..###...................
..................................................................................................................................................................................................................................................................##########################################......################..#####...........########.#...#######.....#########.......############...............#####............#####...#####............######...###...................
..................................................................................................................................................................................................................................................................##################.#######################.......################..##.........##...###################......#########.......#############............######...........#####...########..........######...######.####.........#.
....................................................................................................................................................................................................................................................................########################################........################..........#####...#################.........###.####........############...........#####............#####...###.######...........###...#####################.
.......................................................................................................................................................................................................................................................................###################################..........################........#######...#################..........#.#######.......###########...........#####............#####...#############..............#####################.
.........................................................................................................................................................................................................................................................................################################............###############.......#########...###############............#########.......##########..........#######..........#####....################...........#####################.
............................................................................................................................................................................................................................................................................###..######################...###........#############.......############..###############...##........########.........#########.........#######..........#####.....##################............#################.
..................................................................................................................................................................................................................................................................................####################..#####.........###########.......#############...#############....####.......#########........#########........######..........######.....#####..############....................####...#.
....................................................................................................................................................................................................................................................................................############...#..########.........#########......#############.......##########....######.......#########........#########.......######..........#####.....####......#########..............................
.....................................................................................................................................................................................................................................................................................##########......##########........#######.......#########.###.......###########...########.......#########.........#######.......#####...........#####.....###..........######....#########.................
......................................................................................................................................................................................................................................................................................#######......############.........#####......#########.............###########...#########........########........#######......######..........######.....####...........####....################..###.....
.......................................................................................................................................................................................................................................................................................#####......#######.######.........###.....##########...###.......###########....###########.......########.......######.......#####...........#####.....#####...........####....#########################.
.........................................................................................................................................................................................................................................................................................##......#######...#####................##########..#####.......##########....#####.#######.......########.....#######......######...........#####.....######...........###....#########################.
...............................................................................................................................................................................................................................................................................................#######.....######.............###########..#####.......###########...#####...#######.......########...#######.......#####...........#####......########.........####..#####....#################.
..............................................................................................................................................................................................................................................................................................#######.....#########..........##################........##########....#######..#######.......#################......######...........#####.....###########....#.#####..#####.....################.
.............................................................................................................................................................................................................................................................................................########...###########.........#################.........###########...########....#######.......##############.......#####...........######.....###########....#######..#####......................
............................................................................................................................................................................................................................................................................................##########.############.........################..........##########....########.....#######.......#############......######...........#####......#####...##.....#######..#####......................
............................................................................................................................................................................................................................................................................................#####################...#........#############...........###########...#####..#.......#######......############.......#####............#####.....#####.............#####..#####......................
.............................................................................................................................................................................................................................................................................................##################...###.........###########............##########...#####............#######......###########......######...........######.....#####.............#####..#####..............##......
..............................................................................................................................................................................................................................................................................................###########...##..#####.........###########...........###########...#######...........########.....#########.......#####............#####......#####.............####..######......####..####....#.
...............................................................................................................................................................................................................................................................................................###########....#######..........###########.#........##########...########.............#######......######.......#####.............#####.....######.............####..#########...####..####....#.
................................................................................................................................................................................................................................................................................................##########..##########.........#############.......##########....########.............########......####........#############.....#####.....#####.............#####..################..#########.
.................................................................................................................................................................................................................................................................................................#######...#####..#####.........#############.....###########...########................########.....##........#######################......#####.............#####.......###########..#########.
...................................................................................................................................................................................................................................................................................................###...#####....#####..........#############....##########....########.................########..............#######################.....#####..............#####................##..#########.
...................................................................................................................................................................................................................................................................................................##..######......#####.........#############....##########.....######...................########.............#######################.....#####..............####...####...###...........######.
.....................................................................................................................................................................................................................................................................................................######........######.........###########........######........###.....................########....................##############.....######....#####....#####..#####...####.................
.....................................................................................................................................................................................................................................................................................................######.........######........#########...##....#######...##....##..................##..########............................#####.....###############.########...####...####........########.
.....................................................................................................................................................................................................................................................................................................#######.........#####.........#######...####...######...#####......................###..########........................................###########..########...####...###.........########.
......................................................................................................................................................................................................................................................................................................######.........######.........######.######...######..#######....................######..######................................................###..########...############.......########.
.......................................................................................................................................................................................................................................................................................................######.........######........##############...####...#########.................######..######......................................................#######....####################....###.
........................................................................................................................................................................................................................................................................................................#####.........######.........##############...#....#####.######..............#######..#####..................................................................###########################.
........................................................................................................................................................................................................................................................................................................######......#########........##############........#####.#######.............######..#####......................................................................########################.
.........................................................................................#######....................................######......................####.....................................................................................................................................######....##########.........###########.........#####.##########.........#######..#####..............###.....................######..###..............................################.
.........................................................................................#################################..........######.....................########################...........##...............................#......................................................................#####..#############........#########...........#################........######.#######.............#####...................###################...............................########.
.........................................................................................##################################.........######.....................########################...........###.........################.....####...................................................................####################.........#######...#.......####################.....######..######..............#######.................###########################................................
.........................................................................................##################################.........######.....................########################...........###.........#################...#######.................................................................#####################.........####....###......###.#################...##############....###........########..#............##############################...#####...###................
.........................................................................................##################################.........######.....................########################...........###.........################....#########................................................................####################.........###...#####.....####...###############..##############.....####.......############...........######.#######################....####..#####...............
......................................................................................................................#####.........######.....................########################...........##..........################....############.............................................................#####################............######....#####.....#############..##############.....#####........#############.........#####........#################....####..#############.......
......................................................................................................................#####.........######.....................########################...........##..........################...#############..............................................................####################...........######....########.....##########...#############.....#######.........###########........######...............###########...#####.##############......
......................................................................................................................#####.........######.....................########################..........###.............#############...#############..............................................................####################.........#########...#########.....########....#############....#########.........#########.........######.....................#####...#####....###########....#.
......................................................................................................................####################.....................#####...################..........##..............................#############...............................................................#####..########.######......#########..############..########.....############.....#########...........########.........####..............####....#####...#####.....#####.###....##.
.....................................................................................................................#####################.....................#####.............................##.............................#############.....###.........................................................#####.###############.......########..#################.##......############.....###########...........#######.........####.............#####....#####....####........######...###.
.....................................................................................................................##############################............#####.........................................##########.........#############....######.......................................................#####..########.######.......#######.#################..........############....############...........#######......#######.............######...#####....####........#####...####.
.....................................................................................................................##############################............#####.........................................##########........##############...#########.....................................................#########...##########........######.#################.........############....##############..........######.......######..............######....#####...#####........####...####.
.....................................................................................................................##############################............#####.........................................##########........#############....###########....................................................######......##########.......#####.#################.........############.....##############...........####........######..............######....#####...#####........###.....###.
.....................................................................................................................##############################............#####.........................................##########........##############...############...................................................######......###########.......###..################.........############.....###########.####...........#.........######.......######............#####...#####.....#..###....####.
...................................................................................................................................###############.............#####..##.....................................##########.......##############...######.#######...................................................######......##########.......##..################.........############.....###########..#####....................######.......#########.........#####....####.....####......###..
..............................................................................................................................................####....................#####..................................##########......###############...#####...#######..................................................######...###########............##################........############....###########...#####....................######.......#########.........#####...####......####.....####..
..............................................................................................................................................####...................######..................................##########......###############..#####.....######..................................................###################............###################.......############.....##########....######..................#######......##########.........######..####.....####.....#####..
..............................................................................................................................................####...................######.................................###########.....###############...#####......####..##................................................#################....##........##################......############.....##########......######.................#######......##########..........#####...####...####......####...
..................................####...........................................................................................................#...................######.................................###########.....###############..#####........##..###................................................###############....####........#################......############.....######..###.......#####.................#####........#########...........#####...####...####.....#####...
.....................#####........####......................................................................................................................................................................###########.....##############....####...........#####...............................................##############...#######........###############.......############....######.............######...............#####...............##............#####...####...####.....###.#...
.....................#####........####......................................................................................................................................................................###########....###############....###...........#######...............................................###########....########.........#############.......############....#######..............#####...............#####........###..................#####...####...###......####....
.....................#####........####......................................................................................................................#####...........................................###########....###############....####..........########..............................................########......##########........##############......###########.....######................####...............#######......######...............#####...####..####......#####...
.........####.........####........####......................................................................................................................#####...........................................###########...###############.....####.........##########..............................................###.....#.##############........##############.......########.....######.............########..............########.....##########............######...###..####......#####...
.........####.........####........####....####.####...##########............................................................................................#####.........####..............................###########...###############....#####.........##########..................................................####################........##############...#....#######....#######.............########..............########.....##########.............#####...###..####.......#####..
.........####.........####........####....####.####..###########............................................................................................####..........####..............................###########....#############.....#####........###########...............................................########################........##############.#####..#####.....######...............######...............#######......####...###.............#####...####.####.......#####..
.........####.........####........####....####.####..###########............................................................................................####..........####.................................########......###########.....####..........##########...............................................######...##...#########..........####################...##.....########..............######..............#####........#######.................#####....###.###.........#####.
.........####.........####.........###.....###.####.........####............................................................................................####.........#####...............................................###########....#####...........##########..............................................#####.........########..#........#####################........###########............#####...............########.....##########..............#####....#######..........####.
.........####.........####.........###.....###.####.........####...........................................................................................#####.........#####.....###....#.............................##..###########...######............##########..............................................#####.......#..#######.###........####################.......#######.#####..........######...............###########..############............######...#######..........####.
.........####.........####.........###.....###.####.........####...........................................................................................#####.........#####....####...#####..........................###############...######............##########..............................................######.....###.######..###.........##################.......#######....####........#######...............###########################..........######...#######...........###.
.........#####........####.........####....###.####.........####...........................................................................................#####.........####.....####...########......................###############...#####.............###########...............................................#####...#####..####..#####........##################.......######......##....#....######..................#########################...........#####...######............###.
.........#####........####.........####....###.#####........#####..........................................................................................#####........#####.....####...############..................###############...####..............###########...............................................#####...#####...##....#####........################.......######............###....#####.....................#####################............#####....#####............###.
..........####........####.........####...##########........#####..........................................................................................####.........#####............###############...............###############..#####..............###########...............................................#####....#####.........####.........##############.......########.....##...#####...#####........................##################...............##....#####............###.
..........####........####.........####...##########........#####.........................................................................................#####.........#####...........###################............##############...####...............###########...............................................######...######........#####........#############.......##########...####..######.#####............................##############......................#####.............#..
..........####........####.........####...##########..###########.........................................................................................####..........####............#####..###############...........############...####..............############................................................#####...######.......#######........###########........############.####.############..........................##...###################...............#####................
..........####........####.........####...##########..###########.........................................................................................####..........####............#####......##############...........########...######.............############................................................#####....#####......#########.......###########.......######.##########.#############.........................####.....################...............#####................
..........####........####.........####...##########..###########.........................................................................................######.......#####...........#####........#################..........#####...######.##..........############................................................#####.....##.......##########........#########.......#######..########.############...........................####........#######################......###.................
..........####........####.........####...######......##..................................................................................................######.......#####...........#####........####################.........###...######.####........############................................................######.............#############......#######.......########...####################...........................######........#####################......###..........##.....
..........####........####................................................................................................................................########.....####............#####........#######################..............####.########....############.................................................#####.............#############......######.......###########..##################...........................#########.........##################......###......######.....
..........##..............................................................................................................................................###########..####...........######.......###########################.............#.###########.#############.................................................#####.........##.###############......###......###############...##.############............................############.............##########.................#####.....
..........................................................................................................................................................###########.#####...........#####........###############.##############............#########################.................................................#####........#####################.....#.......################......##########.....#.......................###############.....................................#####.....
..............................................................................................................................................................######..#####...........#####........##############################...............#####################..................................................######......######################............#########...#####.......#######......#####.....###...........#####..##########....................................######....
.........................................................................................#####..............####...............................................#####..######.........######.......###############################......###..........##############..#...................................................#####......#######################..........#########.....####......########.....#########.#####..........#####....##########...#####..........................######....
.........................................................................................######..##########.###################.......................................##########.....#####........###############################.....########........###########.................................................................################..#######........#######.........##..###.########.....###################.......#######....#####.####################................######....
.............................####..............#############.............................######..##########.#########################.................................#############..#####........#############################.......############.......#####...................................................................################...#######........######............#####.#######.....######################......#######......#######################................######....
....................#############.......####################.....##......................######..##########.#########################....................................##########..#####.......##############################.......###############...........................................................................###############....#########......#######..........########.#####......#####################........#######.......#####################................######....
....###....##..#############################################.######......................######..##########.#########################....................###................#######.#####........##############################.......###################......................................................................##############....##########.......######.......############.####.......#####...#############.........########........##################..........................
#######...##################################################.######......................######..##########...#######################...#...............########...............####.#####.##.....#############################.......#######################..................................................................##############...##########..........######.....#############..##................#############...........########........##......########..........................
#######...################################...................######......................#####...##########........#####.############...#########.......###########..............#..#####.######.#############################.......#########################............................................................###################.#########............#######..###############...........##..##....###########.............#########.....###......###..###..........................
########..####################.....#####......................#####......................#####...##########.........##...........####...############....#############..............#####.#####################################.......#########################............................................................############################..............######################............######....###########..............##########...###......###..###..........................
########..#######..................#####......................#####......................#####.....#######......................#####...############....##############...............###.#################.###################......#######.########.#########............................................................##########################.........##......###################..............######......########.................##########.######.#####...............................
####.###...###.....................#####......................#####......................#####....#######.......................#####...###.######......##############...##................##################################.......######......###.....#####.............................................................#########################.........####.....###############.##..............######.........######...................########.#.##########..............##...............
##...###...###.....................#####......................#####......................#####....#######.......................####....####....###.....#####....#####...######...............###############################.......######......###.....#####.............................................................#######################..........######.....#############..................######.........#####......................#########...####...............####...............
##...###...#####.............###########......................#####.....................######....#######.......................####....####....###.....#####......##....#######..................##################...######.......######.....####.....#####.............................................................######################...........#######.....##########....................######........######........................###.####..####...............####...............
########...#####.........###############......................#####.....................######....#######.......................#####...####....###.....#####............#######..####...............##############....#####.......#######.....###.....######.............................................................#####################............########....########......................#####.........######.........................#########..##...............####...............
########...#####.........###############......................#####.....................######....#######.......................#####...####....###....######......#####...#####..#######................###########..####.........######......###.....#####...............................................................##################...............########....######............##........######.........######...........................##########.#..............####...............
########...#####.........###############......................#####.....................######...###########....................#####...####....###................########.###...###########...............##############.........######.....####.....#####...............................................................#################................########.....######..........####.......######........#######....###........#.............##########..............#####..............
##..####...#####.........###############......................#####.....................######...###########....................#####......##..........##.###..............####..###############..............###########..........######.....####....######...............................................................###############...................########....######........######.......#####.........######.....#######....###............##########.............#####..............
....####...#####.........###############......................#####.....................######...###########................##..#####.....######.......#####...............####..###################.............########.........######......###.....#####................................................................##############....................########.....###.........########.....######.........######.....########..######............##########............####..............
....#####..#####.............###########......................#####.....................######...###########................###.#####....#######.......#####.......##.....#####..###.##################..............####.........######......###.....#####...............................................................#############.......................#######...............##########.....######........#######.....########..########...........##########...........####..............
....#####...####..............##....................########..#####.....................######...###########................###.#####.###########......#####.......############..####....##################.......................#########..####.....#####................................................................###########.....................##.########.............############....#####........########....#########.###########.#.........########..........#####..............
#....####...####......##########..##########################..#####.....................######..............................###.####..###########.....######.......###.########.#####.####..###################..................###############.....######................................................................#########.....................#####.#######...........#########.####....#####........#######.....########....#############.........######..........######.............
#....####...#####.....##########..#######################.....######.......................................................####.####..###########.....######......####.######...#####.####......##################...............###############.....#####..................................................................#######....................#######.#######.........###########.#####...#####........#######.....########.....##############........####.............####.............
#....####...#####.....#####.......#####.......................######.......................................................####.####..###########.....######......###########...####..####.........###################...........##################..#####...................................................................####....................################.........#############.####...####.........#######....#########.....##############..........##..............###.............
#....####...#####.....#####...................................######...........................................#...........#########....#########.....######......####.######...#####.####.............#################.............#####################...................................................................###...................################..........########..##########.#####.........######.....########.....#####.########...........................###.............
#....####...#####.....#.......................................######...........................................########........#####...########.......######.....####....####...#########..................#############...####.........##################.........................................................................................############...............######....####.####.#####........######......########.....####..########...........................###.........###.
#...........#####.............................................######....................####...................#########.......#####...########.......#####......####...####......#.#####.....................##########..########..........#############...........................................................................................##########................#######..#####..###.####.........######......########.....####..#######............................####......#####.
............#####..................................#########..######....................####...................###########.....#####....#######.......#####......####...####.....#####.##.........................#####...############..........#########..........................................................................................#########...................######.#####...###.##..##.......######.....#########............#####........................##...####......#####.
.....#####..#####............................###############..######....................####.##................###########.....#####...#######.......######......####...####.....######............................####...###############..........######.........................................................................................########.............###.....##########......##.....#####...#######.....########...............###..........##............####.####......#####.
..########...............................###################..######....................##################################.............#######.......######.....####...#####.....#####............................#####...###################..........#..........................................................................................######.............######.....#######......####.....##############......##########.........................#####.........##########......#####.
..########.................############################.......######....................##################################.............#######..................####...####.....######............................#####..#######################...................................................................................................###.............########......######.....#####....###############.......#############.....................#######.......##########......#####.
..########....################################................##........................########################################.......#######...............#######...####.....######............................####...##########################..............................................................................................................###########.....#######..#######....################......################.................#########.......####..####......####.
..............################################..........................................########################################........######...............#######...####.....#####............................#####...######..####################..........................................................................................................#############......######.########....###############.....#..###################..............########.........#..#####......####.
...########...###############################.............................................................######################........####........#########..#####..#####....######............................#####...######.....####################.....................................................................................................################......#############......##############....####.#####################.............#####..............####......###..
...########...###################........................................................................................#######........####........################..#####....######...####.....................#####..######..........#################..................................................................................................##################......############..........###########....####.#########################...........###..............###.....#####..
..............###...................................................................................................................................###################.###....######...#######..................####...######.........##################................................................................................................#####################......#########...............########....###..###########################..................................#####..
....................................................................................................................................................###################.......######....###########.............#####...######.........##################..............................................................................................#######################.......#######...................####.....###############################...................................#####..
....................................................................................................................................................###################.......######...################.........#####...######.........##################............................................................................................##########################......#####.............................################################..........##........................####..
..........................................................................................................................................................#############.......######......################......####...######.........###################............................................................................................##########################.......###...........#####..............################################..........##........................##....
..................................................................................................................................................................#####.........###..........###############...#####...######.........###################.............................................................................................##########################..................##########.............##############################..........##..............................
...................#####................######...................................................................................................................................................#############.#####...######.........##################..............................................................................................##########################...............##################...........##########################.........###...............................
........######....######...###################......................................................................................................................................................################...#######.....#####################...............................................................................................##########################..........###.####.#..##########..............#######################.........####..............................
.#############...#.#####...###################.......######.............................................................................................................................................###########.....#########################.######.............................................................................................############################........#####..##.......########..................##################..........####..............................
.#############...#.........###################.......######...............................................................................................................................................#########.....####################......######...........................................................................................##############################........######.##............###.....................###...########..........#####..............................
.#############.........##..###################.......######................................................................#########.......................................................................########......###############..........####..........................................................................................################################..........#####..............#####........####.................####...........#####..............................
.######...####.............######....................######.......................................................####.....#########...........................................................................###..........##########............#.............................................................................................##############################............#####..............#####.......#######.....................###.......###...............................
..##.......####......................................######...............................###############.........#####....#########.............................................................................................................................................................................................................###########################........##.....##................####........#################..........#######...####........................###....
..##.......####......................................######...............................###############........#####.....#########.............................................................................................................................................................................................................#########################.........###.................###...####........##################.........##############........................####...
.###.......####......................................######...............................###############........#####.....#########..............................................................................................................................................................................................................######################..........#####........##.....###########........####.##############........###############......................#######.
..###......####....####..............................######...............................###############........####.....##########....###...........................................................................................................................................................................................##..........####################............######.....####.....##########........####....###############.......#############......................#######.
#####......####....#####.............................######...............................###############.......#####.....##########...####........................................................................................................................................................................................######..........###################.............######....#####.....#########........####..........#############......##########......................#######.
######.....####....#####.............................#############........................###############.......#####.....##########...####.........................########........................................................................................................................................................#####..........####################............#######...#####.......######.........####.............#############.......#####.......................####.##.
.#####.............#####.............##########......#############........................###############.......#####.....##########...####........................################.................................................................................................................................................#####...........###################.........###.######...#####...###....###........######.............###############...............................#####....
.#####.............#####........###############......#############.............................................#######....##########...####........................################.................................................................................................................................................######..........####################........###########..######.#####..............########.............################............................####.....
.#####.........##...####........###############......#####...#####.............................................#######.................#####.......................################..................................................................................................................................................#####...........###################.......#####.######...#####..###..#..............########.......###......#############..........................####.....
.#####.......#####..#####.......###############.........##...#####......................#######............##..#######.................#####.......................################..................................................................................................................................................#####...........##################.......######.#####....#######....###...............#######..#..########.....####.#####.....##.....................##.....
.#####..###..#####..#####.......###############........###...#####......................#######............##########..................#####.......................################................................######.........##.................................................................................................#####...........################........######.#####..##..#####....#####.....###........#########.############.####.####.....#####..................#.......
.#####..###..#####..#####.......#....................#####...#####......................#######............##########..................#####.......................#####......#####................................###########....##########.........................................................................................######...........#############.........###########..####..######...####.....#####.........########################.#####.....#######...............#######..
.######.###...####...####........................#########...#####......................#######..............########..................#####.......................#####......#####................................#############..#####################...............................................................................#####...........###########..........##########..##.####..####..#####......####...........######...##############.#####.....########..............#######..
..#####.####..####...#####.......................##########..#####......................######.................#########...............#####.......................####.......#####.................................############.#############################........................................................................#####............##########..........#########..####.####..#########......####..###.........####.....####...####.#####.......#######..............#######..
..#####.####..####...#####.......................###########.#####......................######...................#######...............#####.......................####.......####....................................##########.#############################........................................................................######...........###########........######..#..#####..##...########....##.####.####..........##......###.....###.##...........#####...............######...
..#####.####..#####..#####...............................###.#####......................######...................######...............######......................#####.......####....................................############.#############..############.........................................................................#####............##########........#####....#######.###...###.##.....###.###.######................###......#####..............###....#.........#####.#...
..#####.####..#####..#####................#...#..........###.#####......................######..................#######...............######......................#####......#####....................................####...#####..........####........######.........................................................................#####............###########......######..######...####...##........#####.#########..###..........#######......##..#.####............####.......########..
..#####..###...####...####........#############....####..###.#####......................######..................#######...............######......................################................................#......#...####.......................#####..........................................................................######............##########......######.######...######...........######.#######...#####.........########....##..#######...........######......#########.
..######.###...####...#####.......#############....####......#####.....................#######..................######................######......................################................................#####......####.......................#####...........................................................................#####............##########......######.####....#######..........#####..#######...#######........########....##########............#######......####.###.
..######.###...#####..#####.......#############....####......#####.....................#######.................#######................######......................################................................#####......#######....................#####...........................................................................#####.............#########.....######.######..#######..........####....#####...##########........######....###########..........##.######....#######..#.
.........####..#####..#####.......#############....####......#####.....................#######.................######.................######......................################................................#####......#######....................#####...........................................................................######............#########.....######.#######.######.........######..######...###########..........###.##..###########.........####.####.....#########..
.........##....#####...####........................####......#####.....................#######................#######.................######......................################................................####.......#######....................#####............................................................................#####.............########....#######.##.####.#####.........######..######...###########............#.################.........###.#####.......######...
................####...#####..........#########....####......#####.....................#######................#######..................####................######........#########...............................#####......########..............#####.#####............................................................................#####.............#######.....######.###..##.#####.........#####...######...#######.###....##.........###############........####..#####................
................####...#####.......############....####......#####.....................#######................######.......................................#########.............................................#####......########..............#####..#####..#........................................................................######.............######.....######.###....#####..........####....#####..#######....#....#####........##.##########......######...####..............##.
................#####..#####.......#######.........####......#####.....................#######...............#######.......................................#########...........###...............................#####......####..#...............#####..#####..#########.................................................................#####.............###.......######..##....######..........####...####...######..........#######..........#########......#######...####.............###.
................#####..#####.......................####......#####.....................#######...............#######.......................................########............########................................####.####...................####..####...###########...............................................................#####.......................######.###..#######...........#####.####..#######..........#########........##########......######...####.............####.
................#####...#####......................####......#####.....................#######...............######......#########........................#########...........#########.#######........................########..........................####...###########...............................................................######......................######.###..######.............#######...#######.###......###.########......#########.......####....#####.............####.
.................####...#####.......###########....####......#####.....................#######.................####......############...####...............########...........#########.#######........................##############....................####...###########................................................................#####....................#######..###..#####..............#######..#######.#####.....###.#########......#######.......####.....####...............###.
.................####...#####.......###########....####......#####.....................#######..........................#############..#####..................................#########.#######................###.##..##############...................#####...############...............................................................#####....................#######.####...##.................####...####...########...##############......######.......#####.....####................##.
.................#####..#####.......###########....####......#####.....................#######..........................#############..#####..................................#################................######################...................#####..#############...............................................................######...................#####...####..###..................##..######.#..######...#################......###.......######....#####.................#.
.................#####...####.......###########....####......#####.....................#######....#########.............####.......##..#####...........................................########................###########..#########...................#####..#############................................................................#####...................#####....#######..#...................#####...##..#.##...##.################......#.......######.....####....................
..................####...#####......#####..........####......#####.....................#######....#########.............####...........#####...................................................................###########..............................####...#############................................................................#####..................########..#######.####.................####..#.##....###..##..#################............#####.....#####....................
..................####...#####.....................####......#####.....................######.....#########.............####...........#####.........................###.......................................###.#######.............................#####...##############...............................................................######.................#########.######.######.................######.......######...##########.#####...........######..#...####.....................
..................####...#####.............###...............#####.....................######.....#########.............####...........####..........................######...................................####.#######.............................#####...##############................................................................#####..................#########.####..#######.................#######....######...#####.###########..........#######.###.####......................
..................#####..#####.........#######...............#####.....................######.....#########.............####...........####..........................######...................................####.....###............................#####....###############...............................................................#####.......##.........####.####.####.##.######.................########....####..#######.#########.........##.#########.#####......................
..................#####...#####.......########...............#####......................................................####...........####.......................#########...................................####.....###.......###.............###..#####....###############...............................................................######....####...........#........##......#####...................#######...###...########.########........####.##.####..#####......#...............
...................####...#####........###...................#####......................................................###............####......................###########..................................####.....###.......#############...###..#####....###############................................................................#####....####................###.....########.....................###########......##############........######....###.#####......####.............
...................####...##....................###..........#####......................................................###...........#####......................############.................................####..............####################..#####....###############................................................................#####.....####.........##.#######...########..###...................#########.......#######.####..........######....########......######.....##....
...................#####................##..#######....................................................................####...........#####......................############.................................#######...........####################..####.....###############................................................................######.#######........###########.#######.....####...................#######.......#############.........######......######......########..####....
...................#####................###########....................................................................####...........#####......................############.................................##########..............##############..####.....###############.................................................................#############........###########..###.#.....######...................##########...###.########.........######......#######......###############...
...................#####................############...................................................................############...#####......................############................................###########...####.................####..####....#################................................................................##############.......#######.####.##....############......##...........#########.####..#######.........#####.......######.......###############...
....................####................#########......................................................................#############..####.......................############................................###########...#############.............#####....#################................................................................##############........######.####.####..#############....#####.........#############...######...........###.##.....######......#################..
....................####................#####.........####.............................................................#############..####..........................#########...................................########...###################.......#####........##############................................................................######...####........###########.######.#####.#####....########.........###########..#######........###.#.###....######.......#################..
....................#####..............................#####.........................................................####.......####..####..........................######.............................................#...#####################...#######.......####.......####................................................................####......####........###########.################.....#########...........#########.######.........#####.###....######......###################.
....................###................................#####.........................................................####.............####..........................######.................................................#####################...#######.......############....................................................................####.....####........###########..#####.########.....############...........#######..#####........#########.......###.......###################.
.................#.....................................#####.........................................................####............................................#####.................................######...................############...#######.......##############..................................................................####......###.........######..###..############.....###############..........#######...##.........########..........#......####################.
.....###.........###...................................#####.........................................................###...................................................................................#########......................######....#####........##############...................................................................###......#####........####...####..###.#######.#....################..........#######.###.......########..................####################.
....#########....###...................................######........................................................###..............###..................................................................#########....#####......................................############...................................................................####.....######.......####...#####.###.######.####...####....########...........#########.......#######....................###################.
....################...................................######........................................................###..............###.......######.....................................................#########...######.......######.................................####...................................................................####.....######........####....####..####.....####....###......########..........########......##.#####.......#..........##.##################.
....################...............####.................#####........................................................##..............####.......################...........................................#########...######.......#######.......##...............................................................................................###..#########........#####....####.#####..#######..####.......#########........#######.......####.##........###.......######################.
....###############......#.....########.................#####.....................................#########..........#..............#####.......#################...###....................................#########...###..........#######.......#########........................................................................................###############........####.#.#####..####..###.#####.######.....#########.........#####......#######...##...#####......######################.
.........##########...#####....########.................#####.....................................#########..............################.......#######.#########..######..#####.............................#######...###..........######........################................................................................................##########.#####........#############..##.############.######......########...........#.......########..###..#####.....#######################.
.............######...#####....########.................#####.....................................#########..............###############........#######.#########..######..##############....................###.......###.............###........##################..#####.....................................................................#########....#####.........############....####....#####..#######.....#########.................#############.######.....#######..##############.
.................##...#####....#########................####......................................#########..............###############..............###########..######..#################...................#.......######.....................##################..############..............................................................######.......######...........########......####.########..#######....###########..................#########..#####.....###.####...#############.
#####.............................######.................###.........................##..........##########................#############.....................###...#####...#################...........................######..........................#############..###############...........................................................#####.........#####...........#######....##..#######.####...#######.....###########..................#######.######.....###..##.....#######.####.
#####..............................#####.........................................######..........##########..............##....###....................................##...#################...........................######.................................######.################...........................................................######........#####............#####....####..######..#####..#######.......##########..................###########.....###..###......###########.
#####......###.....................#####.........................................#######.........##########..............###...#########.....................................###############..................##........#####................######.............####.##..#####.######............................................................#####........######............##.....######...###..#######...######......###########...###.............#########.....###..#####.....##.#######.
####......###########..............#####..........................................######.........##########..............###...#########......##############.............###.............###..................#####..........................######.............####.##.....##.####..............................................................#####.........#####..................########...#...##.#####..########....##...######...######............######......##..######.....###.######.
..........################.........######................#........................######.........##########..............###...#########......##############.............###..................................#####..............####.........................######.##........####..............................................................######........#####.................##########.......#########..########..###.#######...######...............###.....###..#####......##.#######.
..........##################.......######............#####........................######.................................###..##########.................................#######..............................#####..............####.........#####...........####...##...........................................................................#####........######................###########.....####.#####...########.##########....######.......................#########......###...#####.
..............###############.......#####.........#########........................###............................#######.....##########.................................#######..............................####...............####.........#######.........####..................###...........................................................#####.....#########..................##########....##########.....########..#######....#####.......................#########.......##......###.
#####...............#########.......#####.....#############.......................................................#######.....#########.....#######..........................###..............................####..............####.#........###########......###...............#######..........................................................######.############.................###.########.....#######.......########..#####....#######......................###########....###........#.
#######......##.........#####.......#####...###############.......................................................#######........######.....#################................###...........#####.............#####..............####.############################...##....#####.#######............................................................###############...................#####.########.......###..........#######...##.....#########......................########...####.........#.
#######.....#####........####...............###########...............................................................###...................###################..........#######################.............#####..............####.#########.##################...###...#############............................................................#############.....................#####..########.......#.............#######........############.....................######..#####.........#.
###.........########.....####...............########........................................................................................###################..........#######################.............#####..............####.#########......#############...###...######...................................................................##########.........................#####.#######........................#######.....###############.....................####..########.....##.
##.............######....#####...............######............................................................................................################..........########################...........######..............###..................############...###########........##...........................................................######.............................###########..........................#####......#####.###########........................###########...##.
##...............####.....####...............######.......................................................................................................#####..........########################...........######.............................####........######..############.......####..........................................................###.................................#########.............................###.....######...###########.......................##########..###.
##.....######.............####...............######......................................................................................................................############......................#######.............................#####...............############......######..............................................................................................#######.........###........#.##..............#####......#########........####.............########..###.
.#....############........####...........###########.......................................................................................................................................................#######...##........................###########.............########.....########.............................................................................................######..........#####.....#######...........######.........#####.........#######.............####....#..
......#############.......#####......###############.............................###.......................................................................................................................#######...########...................#############...............###....##########.............................................................................................####...........#######...########..........#####...........####........##########.............##....##.
......#############........####.....################.........................#######........................###############################..###.....................................................................########.................###################.................############.............................................................................................##.............#######....######..........#####.......................############................###.
.......############........####.....#################.....................##########.....................#######################################.....................................................................########............#....####################...............######..######...........................................................................................................#########.##.####............##...........................#########.###............###.
.............######........####......################....................############.................##############################################.................................................................########.....#.....####..####....##.########...............######.....#####..........................................................................................................############....#.........###............................##########.#####..........###.
.................##........#####.....#########.###........................########..................################################################...##########........................................................####....####...#####.####..........#####..............######.......#####........................................................................................................#####..#####..............#####...........................####.####..########.........#.
...........................#####.....#####................................####....................##############################........############...##########................................................................################..........................#..######........######.......................................................................................................#####....###..............#####.......................#...###....##.###########.........
............................#.........#..........................................................############........#########..................####..###########...............................................................############.####.........................#########........#######......................................................................................................######....##...............####.......................########.......#############.......
##...............................................................................................############.........................................###########.......#.......................................................############.............................#########........#######........................................................................................................###########..............#####..........####.........########.........##############....
#######..........................................................................................############..............................................######......####..##................................................############..............................########.......#.######............................................................................................................#######.............#######.........#######.......##########.........##############..
############....................................................####.............................############.................................................###......##########..............................................############...#...........................######.......###.####..............................................................................................................######.............#########.......########......############.........############..
############...................................................#####.............................############.................................................###.....#############...............................................########...####..........................######.....########..................................................................................................................##.............#############...########..........#########.........############..
.###########..........................................####.....#####.............................##########...........................................................###############..............................................#######...#####..................##......#######..#######...................................................................................................................................###############.########............######.........############...
......######..........................................##############.............................#####.................................................................################..............................................####....####...##.............#####.....##############.....................................................................................................................................#######################.....##.......####.........######...###...
........####..............................#...........##############...................................................................................................####################............................................##...#####...####...........######.....############......................................................................................................................................######################......####..................######...##....
.#####..####........................##########........##############....................###..............................................................................####################...............................................#####..#######....##...########....##########.......................................................................................................................................######################.....#####...................##########....
..####...........................#############........############......................####...............................................................................#...#############................................................####...########...####..#########...#########..........................................................................................................................................##################......#####........##...........########....
..##................#............##############........######..........................#####.....................................................................................###########......##..........................................##..########...#######..########...#######.................................................................................................................##..........................################.....#####........#####.........##.####...#.
...........##..######............##############........##..............................#####.........................................................................................######......#####............................................########...#########..#######...#####...................................................................................................######.........###............................############......#####........#####........###.####...#.
.......######..######............##############.......................................#####............................................................................................####......#######.........................................########...##########...########..###...................................................................................................#########......######............................##########.....#####........######........#######....#.
...##########..######..####......#########..###.......................................#####..............................................................................................##......#########.........................................#####...#####..####.....#######......#...............................................................................................###########....########..............................######......#####...###..#####.........#######...##.
...##########..#####...####......####.......###............................#..........####.......................................................................................................###########.........................................###...#####....#...###.#######....####............................................................................................#############..##########.................................##......####...#####...###........##.####....##.
.############..........####...............................................#####......#####......................................................................................................#####..########.......................................#...#####........#####.######...########.........................................................................................###########################......................................#####...########...........##.####....##.
############.......##..####..............................................#######.....#####.....................................................................................................#####...##########.........................................######.......#####...####..##########........................................................................................############################....................................#####.....########.........########...###.
########..........###..####.............................................########.....####......................................................................................................#######...###########......................................########.....#####...###...###########.......................................................................................#############################..................................######......#######........########....###.
#####.............###..####............................................#########....#####........................................................................................................######.....#####.####.....................................#########....###...####....#########........................................................................................###############################................................#######.##.....####........###.####......#.
#####.............###..####............................................#########....#####................................................................................................###.......###........##########.....................................#########.......#####......########.......................................................................................###############################..................................##########....##.........#######.........
###....................####.............................................#######.....####.................................................................................................####.....#######........#########.....................................########......####........########......................................................................................##############################.....................................##########.......####.###.####.........
#......................####..........................................####.#####....#####................................................................................................#######.....#######........#########.....................................########...#####...##....#######.........##............................................................................############################........................................########.......#######.#####.........
#......................####..........................................####.#####....#####................................................................................................########.....#######.........##########....................................########.####...####....#####.........#####..........................................................................###########################..........................................########.#....#######.####...######.
.......................#####...........................................#######....#####..................................................................................................########.....########.........#########....................................############..#######..####.........#######...........................................................................########################.............................................###########.############...######.
.......................#####.....######..................................#####....#####....................................................................................................#####........########.........#########....................................#########...########..####.......########............................................................................#######################...............................................###########..#...####....######.
........................###############..................................#####....####......................................................................................................###...........#######..........##########...................................#######..##########...###......#######..............................................................................#####################.................................................###############.####...#######.
........................###############..........................###.....####....#####......................................................................................................#####.........#########...........#########...................................####....#################...#######................................................................................###################...................................................##################....#######.
....................###.###############..........................####...#####....#####.......................................................................................................#####..........########...........###########..................................#.......################.#######.................................................................................##################.......................................................###############......#####.
.................######.############............................#####...#####....####................................................................................................###.....######..##.......#########..........###########..........................#..............######################.................................................................................###################..........................................................############.........##.
..............#########..........###............................#####...#####...#####...............................................................................................####....#######.####.........#######............##########.......................####.............#####..#############..................................................................................##################...............................................................#######.............
...........############.........................................####...#####....#####............##.................................................................................####...######...######.......########..............#########....................######..............###....##########....................................................................................################..................................................................#####.............
........#############..........................................#####...#####....####............####...............................................................................####....######..#########.......########..............#########..................######......................########......................................................................................##############......................................................................#..............
.....##############............................................#####...#####...#####...........######.............................................................................####.....#####....#########.........#######..............#########...............######........................######........................................................................................#############.....................................................................................
...#############................................#####..........####....#####...####.............#####.............................................................................####................#########.......########..............########...............######.........................####...........................................................................................##########......................................................................................
..###########...................................#####..........####...#####....####..............###...............................................................................##...................#########........#########...........#######............########............................##.............................................................................................#######.................................###...................................................
..########.............#........................#####.........#####...#####....####.......................................................................................................................########........##########.#.......###.###...........#########...............................#.............................................................................................####.................................#######................................................
...#####.......####.#####............###.........####........#####.....####....###.........................................................................................................................#########.........###########.....##................########................................###............................................................................................###.................................##########.............................................
...###......#######.#####........##.#####.......#####........#####............####..................#........#...............................................................................................#########........###########..................##...######................................######..............................................................................................................................#############..........................................
..........#########.#####.......###..#####......#####........#####............####.................###.....####................................................................................................#########.........##########................###..######...............................########............................................................................................................................###############.........................................
........###########.###........#####.#####......###..........####............####.................#####...#####................#####............................................................................#######............##########.............#####..####................................##########..........................................................................................................................###############.........................................
......##########.............#.######.#####.................#####...........#####................######..#######..............######..............................................................................#####..............#########...........########..#..................................###########.......................................................................................................................###############..........................................
.....########..............###..######.#####..................###...........#####.................#####...#######.............#######...............................................................................#####...###........########...........#########.....................................##########......................................................................................................................#############.#..........................................
...########................####..#####..####................................########...............###.....######........###...######..................................#..............................................####.#####..........#####............#########.....................................###########...................................................................................................................###############...........................................
.########..........###.....#####.######.###........####.....................########............#..........#####.......######..######.................................###.............................................###.#######..........###..............#########......................................###########.................................................................................................................################...........................##.............
########..........#####.....#####.######..........######....................########...........###..........##..........#####..######................................####...............................................#.##########..........................#########.....................................###########................................................................................................................################...........................#####..........
######...........#####.....######..#####..........######....................#######...........#####.....................#####...........................#####........#####..................................................#########...........................########......................................###########.............................................................................................................################............................########.......
#####............#####.....#######..####..........######...................########...........####..................###.#####...........................#####.......######..................................####........##...#########...........................########.......................................#########.............................................................................................................################...........................############....
####............#####.......#######.##............######...................########..........####................######.#####...........................#####.......#######................................#####.......#####..#######..............................#######......................................########..............................................................................................................###############............................#####.#######...
##.............###.#........########..............######...................#######............###................#######.#####..........................#####.......########...............................#####.......#####...#####................................########....................................#######..............................................................................................................################............................#####....####...
#.............#####..##......#######..............######...................#######...............................#######.###............................#####........######................................####.......######....####.................................########..................##.............#########..............................................................................................................################...........................#########..##....
...............###..####.....#######..............######...................#######................................######................................#####........######.................................###.......#####......##....................................#######................####...........#########...............................................................................................................###############............................#############....
...........##.####..####......####................#####....................#######..............##.............#.....###...................................##.........####............................................#####.........#...................................#######..............#######.........#########..............................................................................................................################............................#############....
......##..######.....####......##................######....................######...............###..........####.....#.......................................#.......####.............................................###.........####..................................#######.............#########......#########...............................................................................................................################........................##.###############...
......###.######.....#####.......................######....................######..............#####........#####.............................................#####....##.........................................................######...................................######.............#########.....#########...............................................................................................................###############.........................####################.
.....#########...#....####.......................######....................######.............########......######...........................................######....##..##.....................................................#####.....................................######.............##########...#########..............................................................................................................################.................####...#####################.
......#######..###.....####......................######...................######..............#######.......######...........................................######.......#####.......................................###..........###.......##..............................#####...............###################...............................................................................................................################..........##.....###############.############.
......######...####....####......................######...................######...............######........######............#.............................######......######.......................................#####.........##......####.............................######...............##################................................................................................................................##############...........#####..###############....#########.
.....######....#####....###...............................................######..............#.####...........####......#...####..............................###.......######.#####................................######................######.............................######................###############....................................................................................................................###########..........######################........######.
....######......####.....##.......................................####....#####..............####.#.............###....####..####.....####.....#####......................####.##########............................######...............#######..............................######................############.........................................................................................................................########..........######################.......#######.
...######........####............................................#####....#####..............####...............#......####...###.....######...#####...####................##..############...........................####.................######..............................######..................#########.............................................................................................................................####...........###############.######.......#######.
..######...##....#####...........................................#####....#####.............#####......................#####..####...########..#####...######..................############.............................##..................####...##...........................######..................########...........................................................................................................................................###############.....##........#######.
.#######..###.....####...........................................#####....#####.............####.......................#####..##.....#######...####....######..##.............############...##..............................................##...####...........................######...................#####............................................................................................................................................########..#####................######.
#######..#####.....##...........................................##.###....####................##........................####..........######......#....######..####...........############...####.................................................#####..........................#######...................####.............................................................................................................................................#######.....##...................###.
.#####....###...................................................#####.....####.............##.........#.............##..###............................######.######.............########...######...............................................#####............................#######....................#.................................................................................................................................................###...............................
..###......#.###................................................#####.....####.............######.....#####........###.................................######.######.................####...#########......##...................................######.............................########......................................................................................................................................................................................................
##.#........#####..........................................###..#####.....####.............######....######.......#####....................................#..######.........................########......####................................######...............................########.....................................................................................................................................................................................................
##....##.....####..................................###....####..####......####............#######....#####.......#######.......................................#####...........................#####......#####..#.............................#####.................................########....................................................................................................................................................................................................
##...####....####.................................####....####..####......####............#######....#####.......#######........................................................................####......#####.####...........................####....................................#######...................................................................................................................................................................................................
#...######....#...................................####....####.#####.....#####.............#####.......###........#####...................................................###.............................####..#####...........................##......................................#######........................................................###.......................................................................................................................................
.....######.......................................####.........#####.....#####.....................................###....................................................#####.............................#..######...#................................................................#######......................................................######.....................................................................................................................................
......#####.......................................####....####.#####.....#####.............#####....##..............#.....................................................#####.................................#####..####...............................................................########....................................................#######....................................................................................................................................
.......####...............................................####.#####.....#####.............#####....######........................#####..#####...........................######...................................##...####................................................................#########.................................................##########..................................................................................................................................
##......##................................................####.#####.....#####.............#####....######........................#####..#####...........................#####........#####............................###..............................#....................................########...............................................#############................................................................................................................................
####......................................................####.#####.....#####.............#####....######....................##..#####..#####.######....................#####........####.............##..............................................####...................................#########.............................................###############..............................................................................................................................
####......................................######.....#####.###.####......#####...............##.....######.......#####........##..#####..#####.######.#####...............####........####.............####............................................#####....................................########............................................################.............................................................................................................................
#####.....................................################.....####......#####...................................#####....######.........#####.######.#####...........................####............#######.##......................................#######....................................########............................................#################...........................................................................................................................
######....................................################.....####......#####...................................#####....######...............######.#####..........................#####............#######.####....................................#######..................###.................#######.............................................###############...........................................................................................................................
#.####....................................################....#####......#####......................#####........#####....######........................###..........................#####............#######.######...................................#####.................######..................######................##...........................#############..........................................................................................................................#.

View File

@@ -0,0 +1,158 @@
[
{
"elementType": "labels.icon",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "administrative",
"elementType": "geometry.stroke",
"stylers": [
{
"weight": 2
}
]
},
{
"featureType": "landscape",
"elementType": "labels.text",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "landscape.man_made",
"elementType": "geometry.fill",
"stylers": [
{
"visibility": "on"
}
]
},
{
"featureType": "landscape.man_made",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#000000"
},
{
"visibility": "on"
}
]
},
{
"featureType": "poi",
"elementType": "labels.text",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "poi.government",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#ff0000"
}
]
},
{
"featureType": "road",
"stylers": [
{
"color": "#ffffff"
}
]
},
{
"featureType": "road",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#ffffff"
},
{
"visibility": "on"
}
]
},
{
"featureType": "road",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#ffffff"
},
{
"weight": 8
}
]
},
{
"featureType": "road",
"elementType": "labels.text",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#000000"
},
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"elementType": "labels.icon",
"stylers": [
{
"color": "#ffffff"
},
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"elementType": "labels.text",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "water",
"elementType": "labels.text",
"stylers": [
{
"visibility": "off"
}
]
}
]