rundgang ready
230
Buttons.pde
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
178
CitizenClass.pde
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
12
Entities.pde
@@ -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() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
4
Map.pde
@@ -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), '#');
|
||||
|
||||
@@ -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();
|
||||
|
||||
90
Time.pde
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
93
citizen.pde
@@ -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
|
After Width: | Height: | Size: 63 KiB |
BIN
data/icons/icon_control.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
data/icons/icon_help.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
data/icons/icon_magminus.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
data/icons/icon_magplus.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
data/icons/icon_spectate.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
data/map/houses_with_borders2.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 436 KiB |
BIN
data/map/houses_without_borders2.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
data/map/map2.png
Normal file
|
After Width: | Height: | Size: 20 MiB |
@@ -1,135 +1,270 @@
|
||||
...................###....................................................................................#####....##.....#...............................................###...#.#########......................................................
|
||||
.........................###...............................................................................###..........###................................................##...###.######.......................................................
|
||||
.........................####..........................................................................................#####...................................................#####..####.......................................................
|
||||
.........................####.............................................................##.........###................###.....................................................####...##........................................................
|
||||
..........................##............................................................####.........####...............#.........................................................##.###...###...................................................
|
||||
........................................................................................#####........####.........................................##................................####...###...................................................
|
||||
####.........................................................................###.........##......................................................###................................###.....##...................................................
|
||||
#####.....................###...#####.......####............................####...............................................................######............................................................................................
|
||||
#####....................####...#####.......####.............................###...........................................................##########............................................................................................
|
||||
..#.....................#####....####.......####.............................###........................................................############.#...........##..............................................................................
|
||||
.###.##.................##............................................................................................................###########..###...##...#######.............................................#..............................
|
||||
.#######.................#..........................................................................................................#######..#.....####.##########.###.###......................................###..............................
|
||||
....####...........................................................................................................................#######.........####.##.###########.###.##.................................######..........................##.
|
||||
......###..................................###.....................................................................................####.....####....###..################.####................................#####.........................####.
|
||||
....#####..................................###...............................................................................####..#####.#######....#################.###.####................................###...........................####.
|
||||
....####......................................###...####.....................................................................####...####.#######......######....##.###########...##..........................................................###.
|
||||
.........................####.................###...####........................##...........................................#####..####.######.....#######......##.########....###..............................................................
|
||||
#........................####..............###.......###.......................####...................................###.....##.....##..##....##.####.###.......######..##.....###..............................................................
|
||||
#........................####..............###.###.###..............###.........###..................................####.....#...#####..####.###.#######.........####..........###..............................................................
|
||||
#.................###.........###..........###.###.###..............####........##...............................###.####.........###########.####.##..........##..###..........###..............................................................
|
||||
........###.......######......###..................###...##.....###.####.......................................#.######..............########..##..............###..#...........###..###.........................................................
|
||||
..#....####......#######......######..........###.......###.....###.##.......................................##############....####.######........##........#.####.....##.####..###.####.........................................................
|
||||
####....##.......#######....###..#######......###.......###.....###........................................######.#################.#####......#####.......######.....###.######..#.####.................###..............................###....
|
||||
#####......##......#####....###..##########...###......##.......###......................................####.#####################.#.#........#####....########......###.#######....##..............##..####...........###...............###....
|
||||
.#####....###...###..##......###....#######...........###.............................................###############....##########..##..####..###.....####.##...###..###....####.................######.#####.........####...............##.....
|
||||
..####.....##..######....###.###.........##..###......###..........................................###############....####.........##########....##..#.#####....#####..######.#..................###.##..#####..........###................#.....
|
||||
...##..........#######..#########............###...................................................###.##########...########....##.##########....##########..########..######....................###...##.####........######.....##......###...#.
|
||||
..............########...#########..########.####.............................................###...##########.....#########....###.#########...#########....################....................###...#######......####.###.....##......###...#.
|
||||
..............#########..#########..########..##..............................................###....#######.....######.####...#####............######.....#.##...##########..#####..............###..#########......####.###.............##..##.
|
||||
..............############.#..#####.########...................................................##...#####.........###.###....#######............###...##########.########...#######...............#############......##...###.....##......##..##.
|
||||
.................######.###....#####....####...................................................###..###...........###.###..#########...#########.##############.######...##########.........##....############.............##.....##..........#..
|
||||
...................####.###....#####...........................................................###.................####...########.....#########.##########......###...############........###....####..###................##.##.................
|
||||
................................#..................................................###.........###.................###.....#######.....#########.####...............#########.##..##........##....###....##...................###.............##.
|
||||
..................................................................................####..............................###....########.###.........#.#####.....####....#######......####.###...#......###..###...................###..........#####.
|
||||
..................................................................................###...#######........##...........###...#####.###.####...######.########..####....#####......##############.##...###.####................................#####.
|
||||
..................................................................................#.....#######........###...........##..#####.##########..#######.#######..####......#..#.....##..###.#########...##..###......................#####.......####.
|
||||
............................................................................................###.......#####..###...#####.####..####..######.#####....#####..####.........##.....#..###.#..######.......###................####..#####.##....##...
|
||||
...............................................##...........................................###.......##.#...####..######..#...####....##########............#...........##..#......###.#######.#....#####.....###.......#####..##.....##......#.
|
||||
##............................................###...............................###########.###..............#####..######......####....####.######......................#####......#.###########....########..###.......##.....##...###.......#.
|
||||
##..........................................######..............................################..............#####.######.#########....######.#####........................###.##.###.####.######...########..###........#######...#####......#.
|
||||
...........................................########................#............##############.........###....###########.##########......#####..####........................##.######.##...######.......####..#.....##...#######...####.......#.
|
||||
.........................................###########.............###............##....................#####..############..#####.....###..######.#####.......................##.###.........#######..................##......####..#####.......#.
|
||||
...#.....................................###########............#####...........######..............#######.##########...#######.....#####.#####...###...........................########....##.####............###..##.#########.#####..........
|
||||
.###.....................................#########...........##########.......########...........#########.########......########.....######.####...#............................########.....##.###............###..##.#######..................
|
||||
#####.....................................#######............##########...###.########..........#########.########.......####.##...#...#####..####...............................########.....#######...........###.....###.............#..#####.
|
||||
####.....................................#######..............###############.######............####.#########.###.......########..###.#####.######..............................###........#########.........................####...####..#####.
|
||||
###.....................................######................###############.............##.....##...######..#######....#.######..########.######..................................##.#....###...###...............########.#####..######.#####.
|
||||
##......................................#####.................#############.............####............###...#######......#####...#############...##...........................##.######...###.....................########..##...###.###....##.
|
||||
.........................................###..................########..###..........########.....##....###....######....#########...##.########...###.......................##.##.######....###...............###..#####.##.......###..##..####.
|
||||
..............................................................##...########..........########.######.....###...####......############.##...##......####............###.......##.##.##..##....#.................####................###..##.#####.
|
||||
................................................................###########......###..####.....#######.##.###.......###..############.##............####......###..####.##......###...###..######.............#####.................##..##.#####.
|
||||
.......####.....................................................#########.....#######.##....######.#######.##.....#####...###########.######.........###.......##..#######......###.####.########...........#######...###...........##..##..###..
|
||||
.......####.....................................................#######.....#########.......#######.##.####......#######..##################.......#####....##.###...#####..........#############...........###.......###...##.......##.##..####.
|
||||
.......####.......................########.............####......###.......######..##........#######....###......#######...#######.##########....########..#######.#####..........################..........########..###.####..####.##.##..####.
|
||||
.....#...................#...#############.............####..............########...##........#####.....####......######...#####...##########.############..###.########.......######..####.###.##....#.....##.#####..###.####..####.##.##.......
|
||||
...####...............####...#############.............####........#####.#####......##........#####.....####.####.#######...##.....###################.####.#############.....######.####..#####.....###....##.#####..###.##....#..............#.
|
||||
....###............#######...######....................####......###########..................####.....#####.####..#######..........#####.#######..####.###..####....####....###########..#######...####....##.#####................##.###...###.
|
||||
....###.........##########...............................#......##########....................#####....###..######.#######........############.########..###.####.....###..###.#########.#######...#.##.....##.................####.##.###...###.
|
||||
.....##......##########.......................................#####..###.##.#.............##....####...##...######.########...################..########.###.####.....#################..######...###.............##......#########.##.###.......
|
||||
.....###.....#######........................................####......########............###.######..###...#####..########...####.#########.################.######...#######.########....###....###...........#.##..##..#########............#.
|
||||
#.....##......###...........................................####......########...........#.##############...##.##.#########...#########.#############.######..######..######.######.####....#..###.#......###.###.##..##..#####..............###.
|
||||
#......#......#..............................................###......########.....##.####..##############...####.##########..#########.############..#####...##################.#..####......####........###.###.....##..#####............#####.
|
||||
#............####...............##...........................##.......######.....####.#####..##########..##..####.####.#####....#####################.######...##.##############...###..#....####...#......................####.###.......###....
|
||||
.............####.............#####.......................................##.....##########...######....###..#####.....#####....#################.###...#####...###############...###..###..####...###......................##..###....#####.....
|
||||
..............###...........#######............##.................................###..####.........########..####.....##........#########.###########..#####..################...###.####.####....##..###.##.##...########.##...##....###....##.
|
||||
..............####.........#######............#######........#####.######.......##.....####..........#######..###........##........########..##########..####...##############.......####..###.........###.##.##..#########......##..####....###.
|
||||
..............####.........#####..............#######........############......####....####..........#######..........#####........####################..####...############..........#.....#...##.....###.##.##..###.###...........####...####..
|
||||
..............####..........###.................##.##.........####.######...#######..###.............########......########.........##########################..#########......##..............####...........##....................##..#####....
|
||||
..............####............................................####.######..#########.###.........##..########......########..##......###########..############..#####..........####.............###..............####.###...............####.....
|
||||
...............##...................................###.......####.####..###########.##..........###..#######......#######..###.......########....########..###..###...###......####.........#................#######.###..............###.......
|
||||
#...................................................###.......####..###.################.........###..#########....####.########.......#####.#...###.###.######...###..###......###.........###...............#######.########.......####....###.
|
||||
#...................................................###.......####..#....########.#####..##.......###.#########....#############.......########..#############....###...##....##.#..###.....###....##.........##......############...##.....#.##.
|
||||
#.............................................................####.......#########.####.###.......###.#########....#############......#########.#####..######......#..........###..####.....##....####.............##..###########....#....##.##.
|
||||
###..........................#..........................###..................##########.#######....##.######....###.##.##########...###..######.####.......#.................####..###.....####....##..........###.###.########..###.......##....
|
||||
###........................####.........................###.......##.........##################...###..##..############.#########..#####..######..####.....................#####.##.#......####..###............##..##.########..###....###......
|
||||
.#.........................####.........................##........####.....##.#..##.#######.####################.##########..###########..######..####....................####..####.....#..###..###......................#####..##....####......
|
||||
............................#.....................................####.######...#....####.#.####################.########################.#######.####....................###..####.....###......##.................###...#####.......#####......
|
||||
.....................................................#............################.....####.####################.########################.########.####....##............###..###......#####....................#######...#####...##..####.......
|
||||
...................................................###.............###############...#.####.#########...######..##..###################...#############...####...........###..###......#####............################..##....####..#..........
|
||||
..##............................#..............#...###....................####......#######.###.######.##..########.###########...####.....########..##...####............#.####........###....##.......#################.##....####.............
|
||||
####...........................###............###..####...............#######....##.#######..########.#############..#..####..########.....#####...####....#.........###...####..............####.......##########....###........#.#.............
|
||||
####............................##...........####..####.............######.###.#######.###.#####.####..###########.###.......#############.#####...####..............###..####...............####.......######........####......####.............
|
||||
###..............##.........................#####...###.............##########.########...######.####...#######..######...##..####.....####.#####.####...............###.####...#.............##....######.............###...##.####.............
|
||||
##............#####........................#####....#................######.##..#######....####...##....####...########...###.####..##.####.########..###............########..###..................######.............###.####.##...............
|
||||
#....#........#####.........######.........####.###...................####..#..#########...###....###....##..###########...#####..####.####..#######.####.....#........#####..#####........#....##...#####.................####..................
|
||||
....###.......#####........#######.........###.#####..##............####.......##########...###.#####......###########......###...##########.#####.######....###.......####..######.......###...##...##.....................##......####.........
|
||||
...#####.......#######....##########...........#####.###...........####....##############...#########......#########........###...##.##.####..###..####.....####........##...#####.......####..................................####.####.........
|
||||
...#####.......########...##########.......###..##..####.........#########################..#########.###..#######........#..........#######...##..##....#..####..............###........####..................................#####.###....##...
|
||||
..#####.........###################........####...######.........#########################..#.######.####...####........####..........#####...###.......####.###...............#...........#.......#########...................#.###........###..
|
||||
.#####............###############........##.##...#######.........########################....###.########...##.......#######...#....#####..##...........###...............###......................#########.....................................
|
||||
#####..##.........###############.......###.....########.........###.####.###########.#####..####.######.............######..####.#######.###..........####..............#####.....................#########.....................................
|
||||
###....###........##############........###......########............##.###########....####...###.####...............####...#####.####.##.######.......###......###......######....................##########....................................
|
||||
##.....###........#############..........#.##....########.............#############..#######..########....#..........###....###....#...##.######..##...###......####....######......###......###.................................................
|
||||
#.......###........############...........###.....#######..............###...######.########...######...####...............###.........##############...##......###....######......#####....####.................................................
|
||||
........####.......###########............####...########..............####..######.######..#..####.....####........###...###..........##.....########...........#.....####........####.....####............................................##...
|
||||
.........###.......#########..........#....#.....#######................#########....#########..#....##.####........###....###...#............####.##.###..........###..###.........##.......#............................................####...
|
||||
..........###......########......#######..........####..............###.####.#####....########......####.####.....####..##..######....................###..........###.............#......................................................####...
|
||||
........#####......#######.....##########..........##..............####..####.###.....######.##......###.####.....#################.................####..#.........##............###...............................................##.....##....
|
||||
.......######.........#.........#########..........................####..####.##......######.###......###.###.###.#######.###.#####..####.....####..##...###......................####.............................................####.....###..
|
||||
.....######.....................##########............##............##...########.##.######.####......####...####.####.##..######..#######....####..##..####...................###.##............................................##.##......###..
|
||||
...######...................##....########...........####.................####.##################.....######.#####.##..###.##.#############...####.......##..................##.##............###................................###........###..
|
||||
..######...................###.....#######.........#######................####.#.#########.##.####...#############....#####.################..####...#.......................###..............###.....##.........................###.............
|
||||
######.....................####...#######...........######.................####..##########...#####.#####..##.##....#######.###########..##...####..###.......................................###.....##.........................................
|
||||
####.......................####.#######.........##..#####..##...............####.#########....#.########...###.#....############..###.........####..####.....................##.......................##.........................................
|
||||
.###.......................###.######..........####..#...#####..............#####..#####....###..###.##.....####.....########.##..####..............###.....................####.................................................................
|
||||
.####......................#########...........####......#####..............######.####....#####.####......######....##..####....#####......####....##......................####..............................####...............................
|
||||
..###.......................######..............#........######...............#####......#######..##.....########........###..#.######..##########............................................................####...............................
|
||||
..###........................####.........................#####...............#####.....##########.......########..........####.###################....###................................................................................#......
|
||||
..............................##.........#................###.............###.#####.#########.#####.......###..###.......######..############..###.....###.....................####........####..........................................####....
|
||||
........#######........................####..............................####..############...####...##........##...##...#######..######..#####....##..####....................####.###....####...........#..............................###.....
|
||||
..#############.....................##.####.....................#.........###...######.###....###..#####...........###....######..######..#####...####..###................##.......###....###.....####.####..............................##.....
|
||||
..#############....................###..##.....................###...............#####........#...#######..........####...#######.###.....####..######..####..............####......##.............####.####....................#...###.......##.
|
||||
..#######..#####..................#####........................###................####.##.........#######.........#####...########.######..#...#######...####.............####...........##........####..#...###..............####..###.......##.
|
||||
..#####.....####................########.......................###.................#######.........#######......###.####...##.#####.######...##########...###...............#...........###.###..............###...........#..####..###.......##.
|
||||
..#####.....####...............##########..................###..#...............#...######....###.########.....#########.......####.######.########..###...###....................#....###.####..............###.........####..#..............##.
|
||||
...###......######............######.####....##..........#####.................###...#####..#####.######......#####.#####.......###......##.###..#...###...##.#..................####...##.###...................###......###.................##.
|
||||
...........#######............####.#..####..###.........#######..####.........####....###.######..#..##........###..#####.......##......#########....#####...###.....##..........###.............##.............####.............................
|
||||
...........#######............###.###.###.#####........########..####..........##........#####..####.................#####..######......####..####......###..###.....###...........#.####.......####.............###.............................
|
||||
.....#.....#######.............#######....###..........#######...####...................######.#####...........##.########...######......############...####...##....................#####.......##.##..............###..........................
|
||||
.#####.....#####...............######...#####.......#...###.#.###.##................#...###########...........#######...###..##.#..........####.#####...###...###.......##............###.#.........##..............###.##.......................
|
||||
#######.....####................###....####.......####...########....###............##...#####.##.............#######...###................###...##.....#####..###.....###...............####.......##.##............#..###......................
|
||||
#######......................##..#......###......#####....#######...####............##....####................######.....###.....#..######..#.##.####....#####..###....###...............###.###......###.##............###.........###..........
|
||||
######..................##...###...............#####.......#####....####..................................###########....##....####.######....#######.#########..##...........##.............###........#.###....#.......##...###...###..........
|
||||
###....................###...####..##.........#####.###.....##...##..##..........................##........#####.####......###.####.#######...######.###..#.###...............###.............##..........##.##..###..........####..###..........
|
||||
......................####...####.###.......######.####..........###............................####.......#####...#.....#####..##.##########....######.....#..................##....................#.......#######..##......######.............
|
||||
....................####.##...#######......#####...#####.........###............................###...........##.........######....#####.####....####..###.###.##....#...##.........................###.......#..###.####......#######...........
|
||||
...................#####.###...######....######....#####.....................................##..#........##.............######...#####..#####....####.###.######...###..###.........###.............##..##..........####.......######...........
|
||||
#................#####...###....###.....#####.......####.....................................###...##...####..##........#...####.##############....###.##########...###...##....#....###..###...........###..##........#..##......####.........#.
|
||||
#..............####........###..##......####........##.............#..####..................####...###..########.......###.#####.#########.####.....###..######.....###...#.....###.......###.###.......###..##..##......####.#.....#..........#.
|
||||
...............####........###........####........................########....##............###....###...####.##.......###.######..####.##.#####....#########...........##.......##.......#######.......##...##.####......##.####................
|
||||
................#.###....####........#####.............##.........#######..#..###............##.....####.##........###..##..#####..###.....######....#####.............####..................####...............####.........####................
|
||||
...........#####..###....####........######..........#####........######..###........................#####....#....###......#####...###....#######...####..............###..##................###.................#...........##.................
|
||||
......##########...#..#.####....#.....#####.........######.........####...###....##...............##..####..####.#####...##..##########.##....#####..##.................#..###...................................................................
|
||||
.....###########.....#####....####.....####........#######..........####..##....####.............####...########.##......###..##.#####.#####...####.................##......#....................................................................
|
||||
.....###########.....####....#####.....##........#######............####.....#######.............####....#######....###...######.####..######.####..................###..........................................................................
|
||||
..................................................................................................................................................................................................................................................................#########################################......#################..######.........########......######......########.......############................######.........#######...###..........###.#######..###...................
|
||||
..................................................................................................................................................................................................................................................................##########################################......################..#####...........########.#...#######.....#########.......############...............#####............#####...#####............######...###...................
|
||||
..................................................................................................................................................................................................................................................................##################.#######################.......################..##.........##...###################......#########.......#############............######...........#####...########..........######...######.####.........#.
|
||||
....................................................................................................................................................................................................................................................................########################################........################..........#####...#################.........###.####........############...........#####............#####...###.######...........###...#####################.
|
||||
.......................................................................................................................................................................................................................................................................###################################..........################........#######...#################..........#.#######.......###########...........#####............#####...#############..............#####################.
|
||||
.........................................................................................................................................................................................................................................................................################################............###############.......#########...###############............#########.......##########..........#######..........#####....################...........#####################.
|
||||
............................................................................................................................................................................................................................................................................###..######################...###........#############.......############..###############...##........########.........#########.........#######..........#####.....##################............#################.
|
||||
..................................................................................................................................................................................................................................................................................####################..#####.........###########.......#############...#############....####.......#########........#########........######..........######.....#####..############....................####...#.
|
||||
....................................................................................................................................................................................................................................................................................############...#..########.........#########......#############.......##########....######.......#########........#########.......######..........#####.....####......#########..............................
|
||||
.....................................................................................................................................................................................................................................................................................##########......##########........#######.......#########.###.......###########...########.......#########.........#######.......#####...........#####.....###..........######....#########.................
|
||||
......................................................................................................................................................................................................................................................................................#######......############.........#####......#########.............###########...#########........########........#######......######..........######.....####...........####....################..###.....
|
||||
.......................................................................................................................................................................................................................................................................................#####......#######.######.........###.....##########...###.......###########....###########.......########.......######.......#####...........#####.....#####...........####....#########################.
|
||||
.........................................................................................................................................................................................................................................................................................##......#######...#####................##########..#####.......##########....#####.#######.......########.....#######......######...........#####.....######...........###....#########################.
|
||||
...............................................................................................................................................................................................................................................................................................#######.....######.............###########..#####.......###########...#####...#######.......########...#######.......#####...........#####......########.........####..#####....#################.
|
||||
..............................................................................................................................................................................................................................................................................................#######.....#########..........##################........##########....#######..#######.......#################......######...........#####.....###########....#.#####..#####.....################.
|
||||
.............................................................................................................................................................................................................................................................................................########...###########.........#################.........###########...########....#######.......##############.......#####...........######.....###########....#######..#####......................
|
||||
............................................................................................................................................................................................................................................................................................##########.############.........################..........##########....########.....#######.......#############......######...........#####......#####...##.....#######..#####......................
|
||||
............................................................................................................................................................................................................................................................................................#####################...#........#############...........###########...#####..#.......#######......############.......#####............#####.....#####.............#####..#####......................
|
||||
.............................................................................................................................................................................................................................................................................................##################...###.........###########............##########...#####............#######......###########......######...........######.....#####.............#####..#####..............##......
|
||||
..............................................................................................................................................................................................................................................................................................###########...##..#####.........###########...........###########...#######...........########.....#########.......#####............#####......#####.............####..######......####..####....#.
|
||||
...............................................................................................................................................................................................................................................................................................###########....#######..........###########.#........##########...########.............#######......######.......#####.............#####.....######.............####..#########...####..####....#.
|
||||
................................................................................................................................................................................................................................................................................................##########..##########.........#############.......##########....########.............########......####........#############.....#####.....#####.............#####..################..#########.
|
||||
.................................................................................................................................................................................................................................................................................................#######...#####..#####.........#############.....###########...########................########.....##........#######################......#####.............#####.......###########..#########.
|
||||
...................................................................................................................................................................................................................................................................................................###...#####....#####..........#############....##########....########.................########..............#######################.....#####..............#####................##..#########.
|
||||
...................................................................................................................................................................................................................................................................................................##..######......#####.........#############....##########.....######...................########.............#######################.....#####..............####...####...###...........######.
|
||||
.....................................................................................................................................................................................................................................................................................................######........######.........###########........######........###.....................########....................##############.....######....#####....#####..#####...####.................
|
||||
.....................................................................................................................................................................................................................................................................................................######.........######........#########...##....#######...##....##..................##..########............................#####.....###############.########...####...####........########.
|
||||
.....................................................................................................................................................................................................................................................................................................#######.........#####.........#######...####...######...#####......................###..########........................................###########..########...####...###.........########.
|
||||
......................................................................................................................................................................................................................................................................................................######.........######.........######.######...######..#######....................######..######................................................###..########...############.......########.
|
||||
.......................................................................................................................................................................................................................................................................................................######.........######........##############...####...#########.................######..######......................................................#######....####################....###.
|
||||
........................................................................................................................................................................................................................................................................................................#####.........######.........##############...#....#####.######..............#######..#####..................................................................###########################.
|
||||
........................................................................................................................................................................................................................................................................................................######......#########........##############........#####.#######.............######..#####......................................................................########################.
|
||||
.........................................................................................#######....................................######......................####.....................................................................................................................................######....##########.........###########.........#####.##########.........#######..#####..............###.....................######..###..............................################.
|
||||
.........................................................................................#################################..........######.....................########################...........##...............................#......................................................................#####..#############........#########...........#################........######.#######.............#####...................###################...............................########.
|
||||
.........................................................................................##################################.........######.....................########################...........###.........################.....####...................................................................####################.........#######...#.......####################.....######..######..............#######.................###########################................................
|
||||
.........................................................................................##################################.........######.....................########################...........###.........#################...#######.................................................................#####################.........####....###......###.#################...##############....###........########..#............##############################...#####...###................
|
||||
.........................................................................................##################################.........######.....................########################...........###.........################....#########................................................................####################.........###...#####.....####...###############..##############.....####.......############...........######.#######################....####..#####...............
|
||||
......................................................................................................................#####.........######.....................########################...........##..........################....############.............................................................#####################............######....#####.....#############..##############.....#####........#############.........#####........#################....####..#############.......
|
||||
......................................................................................................................#####.........######.....................########################...........##..........################...#############..............................................................####################...........######....########.....##########...#############.....#######.........###########........######...............###########...#####.##############......
|
||||
......................................................................................................................#####.........######.....................########################..........###.............#############...#############..............................................................####################.........#########...#########.....########....#############....#########.........#########.........######.....................#####...#####....###########....#.
|
||||
......................................................................................................................####################.....................#####...################..........##..............................#############...............................................................#####..########.######......#########..############..########.....############.....#########...........########.........####..............####....#####...#####.....#####.###....##.
|
||||
.....................................................................................................................#####################.....................#####.............................##.............................#############.....###.........................................................#####.###############.......########..#################.##......############.....###########...........#######.........####.............#####....#####....####........######...###.
|
||||
.....................................................................................................................##############################............#####.........................................##########.........#############....######.......................................................#####..########.######.......#######.#################..........############....############...........#######......#######.............######...#####....####........#####...####.
|
||||
.....................................................................................................................##############################............#####.........................................##########........##############...#########.....................................................#########...##########........######.#################.........############....##############..........######.......######..............######....#####...#####........####...####.
|
||||
.....................................................................................................................##############################............#####.........................................##########........#############....###########....................................................######......##########.......#####.#################.........############.....##############...........####........######..............######....#####...#####........###.....###.
|
||||
.....................................................................................................................##############################............#####.........................................##########........##############...############...................................................######......###########.......###..################.........############.....###########.####...........#.........######.......######............#####...#####.....#..###....####.
|
||||
...................................................................................................................................###############.............#####..##.....................................##########.......##############...######.#######...................................................######......##########.......##..################.........############.....###########..#####....................######.......#########.........#####....####.....####......###..
|
||||
..............................................................................................................................................####....................#####..................................##########......###############...#####...#######..................................................######...###########............##################........############....###########...#####....................######.......#########.........#####...####......####.....####..
|
||||
..............................................................................................................................................####...................######..................................##########......###############..#####.....######..................................................###################............###################.......############.....##########....######..................#######......##########.........######..####.....####.....#####..
|
||||
..............................................................................................................................................####...................######.................................###########.....###############...#####......####..##................................................#################....##........##################......############.....##########......######.................#######......##########..........#####...####...####......####...
|
||||
..................................####...........................................................................................................#...................######.................................###########.....###############..#####........##..###................................................###############....####........#################......############.....######..###.......#####.................#####........#########...........#####...####...####.....#####...
|
||||
.....................#####........####......................................................................................................................................................................###########.....##############....####...........#####...............................................##############...#######........###############.......############....######.............######...............#####...............##............#####...####...####.....###.#...
|
||||
.....................#####........####......................................................................................................................................................................###########....###############....###...........#######...............................................###########....########.........#############.......############....#######..............#####...............#####........###..................#####...####...###......####....
|
||||
.....................#####........####......................................................................................................................#####...........................................###########....###############....####..........########..............................................########......##########........##############......###########.....######................####...............#######......######...............#####...####..####......#####...
|
||||
.........####.........####........####......................................................................................................................#####...........................................###########...###############.....####.........##########..............................................###.....#.##############........##############.......########.....######.............########..............########.....##########............######...###..####......#####...
|
||||
.........####.........####........####....####.####...##########............................................................................................#####.........####..............................###########...###############....#####.........##########..................................................####################........##############...#....#######....#######.............########..............########.....##########.............#####...###..####.......#####..
|
||||
.........####.........####........####....####.####..###########............................................................................................####..........####..............................###########....#############.....#####........###########...............................................########################........##############.#####..#####.....######...............######...............#######......####...###.............#####...####.####.......#####..
|
||||
.........####.........####........####....####.####..###########............................................................................................####..........####.................................########......###########.....####..........##########...............................................######...##...#########..........####################...##.....########..............######..............#####........#######.................#####....###.###.........#####.
|
||||
.........####.........####.........###.....###.####.........####............................................................................................####.........#####...............................................###########....#####...........##########..............................................#####.........########..#........#####################........###########............#####...............########.....##########..............#####....#######..........####.
|
||||
.........####.........####.........###.....###.####.........####...........................................................................................#####.........#####.....###....#.............................##..###########...######............##########..............................................#####.......#..#######.###........####################.......#######.#####..........######...............###########..############............######...#######..........####.
|
||||
.........####.........####.........###.....###.####.........####...........................................................................................#####.........#####....####...#####..........................###############...######............##########..............................................######.....###.######..###.........##################.......#######....####........#######...............###########################..........######...#######...........###.
|
||||
.........#####........####.........####....###.####.........####...........................................................................................#####.........####.....####...########......................###############...#####.............###########...............................................#####...#####..####..#####........##################.......######......##....#....######..................#########################...........#####...######............###.
|
||||
.........#####........####.........####....###.#####........#####..........................................................................................#####........#####.....####...############..................###############...####..............###########...............................................#####...#####...##....#####........################.......######............###....#####.....................#####################............#####....#####............###.
|
||||
..........####........####.........####...##########........#####..........................................................................................####.........#####............###############...............###############..#####..............###########...............................................#####....#####.........####.........##############.......########.....##...#####...#####........................##################...............##....#####............###.
|
||||
..........####........####.........####...##########........#####.........................................................................................#####.........#####...........###################............##############...####...............###########...............................................######...######........#####........#############.......##########...####..######.#####............................##############......................#####.............#..
|
||||
..........####........####.........####...##########..###########.........................................................................................####..........####............#####..###############...........############...####..............############................................................#####...######.......#######........###########........############.####.############..........................##...###################...............#####................
|
||||
..........####........####.........####...##########..###########.........................................................................................####..........####............#####......##############...........########...######.............############................................................#####....#####......#########.......###########.......######.##########.#############.........................####.....################...............#####................
|
||||
..........####........####.........####...##########..###########.........................................................................................######.......#####...........#####........#################..........#####...######.##..........############................................................#####.....##.......##########........#########.......#######..########.############...........................####........#######################......###.................
|
||||
..........####........####.........####...######......##..................................................................................................######.......#####...........#####........####################.........###...######.####........############................................................######.............#############......#######.......########...####################...........................######........#####################......###..........##.....
|
||||
..........####........####................................................................................................................................########.....####............#####........#######################..............####.########....############.................................................#####.............#############......######.......###########..##################...........................#########.........##################......###......######.....
|
||||
..........##..............................................................................................................................................###########..####...........######.......###########################.............#.###########.#############.................................................#####.........##.###############......###......###############...##.############............................############.............##########.................#####.....
|
||||
..........................................................................................................................................................###########.#####...........#####........###############.##############............#########################.................................................#####........#####################.....#.......################......##########.....#.......................###############.....................................#####.....
|
||||
..............................................................................................................................................................######..#####...........#####........##############################...............#####################..................................................######......######################............#########...#####.......#######......#####.....###...........#####..##########....................................######....
|
||||
.........................................................................................#####..............####...............................................#####..######.........######.......###############################......###..........##############..#...................................................#####......#######################..........#########.....####......########.....#########.#####..........#####....##########...#####..........................######....
|
||||
.........................................................................................######..##########.###################.......................................##########.....#####........###############################.....########........###########.................................................................################..#######........#######.........##..###.########.....###################.......#######....#####.####################................######....
|
||||
.............................####..............#############.............................######..##########.#########################.................................#############..#####........#############################.......############.......#####...................................................................################...#######........######............#####.#######.....######################......#######......#######################................######....
|
||||
....................#############.......####################.....##......................######..##########.#########################....................................##########..#####.......##############################.......###############...........................................................................###############....#########......#######..........########.#####......#####################........#######.......#####################................######....
|
||||
....###....##..#############################################.######......................######..##########.#########################....................###................#######.#####........##############################.......###################......................................................................##############....##########.......######.......############.####.......#####...#############.........########........##################..........................
|
||||
#######...##################################################.######......................######..##########...#######################...#...............########...............####.#####.##.....#############################.......#######################..................................................................##############...##########..........######.....#############..##................#############...........########........##......########..........................
|
||||
#######...################################...................######......................#####...##########........#####.############...#########.......###########..............#..#####.######.#############################.......#########################............................................................###################.#########............#######..###############...........##..##....###########.............#########.....###......###..###..........................
|
||||
########..####################.....#####......................#####......................#####...##########.........##...........####...############....#############..............#####.#####################################.......#########################............................................................############################..............######################............######....###########..............##########...###......###..###..........................
|
||||
########..#######..................#####......................#####......................#####.....#######......................#####...############....##############...............###.#################.###################......#######.########.#########............................................................##########################.........##......###################..............######......########.................##########.######.#####...............................
|
||||
####.###...###.....................#####......................#####......................#####....#######.......................#####...###.######......##############...##................##################################.......######......###.....#####.............................................................#########################.........####.....###############.##..............######.........######...................########.#.##########..............##...............
|
||||
##...###...###.....................#####......................#####......................#####....#######.......................####....####....###.....#####....#####...######...............###############################.......######......###.....#####.............................................................#######################..........######.....#############..................######.........#####......................#########...####...............####...............
|
||||
##...###...#####.............###########......................#####.....................######....#######.......................####....####....###.....#####......##....#######..................##################...######.......######.....####.....#####.............................................................######################...........#######.....##########....................######........######........................###.####..####...............####...............
|
||||
########...#####.........###############......................#####.....................######....#######.......................#####...####....###.....#####............#######..####...............##############....#####.......#######.....###.....######.............................................................#####################............########....########......................#####.........######.........................#########..##...............####...............
|
||||
########...#####.........###############......................#####.....................######....#######.......................#####...####....###....######......#####...#####..#######................###########..####.........######......###.....#####...............................................................##################...............########....######............##........######.........######...........................##########.#..............####...............
|
||||
########...#####.........###############......................#####.....................######...###########....................#####...####....###................########.###...###########...............##############.........######.....####.....#####...............................................................#################................########.....######..........####.......######........#######....###........#.............##########..............#####..............
|
||||
##..####...#####.........###############......................#####.....................######...###########....................#####......##..........##.###..............####..###############..............###########..........######.....####....######...............................................................###############...................########....######........######.......#####.........######.....#######....###............##########.............#####..............
|
||||
....####...#####.........###############......................#####.....................######...###########................##..#####.....######.......#####...............####..###################.............########.........######......###.....#####................................................................##############....................########.....###.........########.....######.........######.....########..######............##########............####..............
|
||||
....#####..#####.............###########......................#####.....................######...###########................###.#####....#######.......#####.......##.....#####..###.##################..............####.........######......###.....#####...............................................................#############.......................#######...............##########.....######........#######.....########..########...........##########...........####..............
|
||||
....#####...####..............##....................########..#####.....................######...###########................###.#####.###########......#####.......############..####....##################.......................#########..####.....#####................................................................###########.....................##.########.............############....#####........########....#########.###########.#.........########..........#####..............
|
||||
#....####...####......##########..##########################..#####.....................######..............................###.####..###########.....######.......###.########.#####.####..###################..................###############.....######................................................................#########.....................#####.#######...........#########.####....#####........#######.....########....#############.........######..........######.............
|
||||
#....####...#####.....##########..#######################.....######.......................................................####.####..###########.....######......####.######...#####.####......##################...............###############.....#####..................................................................#######....................#######.#######.........###########.#####...#####........#######.....########.....##############........####.............####.............
|
||||
#....####...#####.....#####.......#####.......................######.......................................................####.####..###########.....######......###########...####..####.........###################...........##################..#####...................................................................####....................################.........#############.####...####.........#######....#########.....##############..........##..............###.............
|
||||
#....####...#####.....#####...................................######...........................................#...........#########....#########.....######......####.######...#####.####.............#################.............#####################...................................................................###...................################..........########..##########.#####.........######.....########.....#####.########...........................###.............
|
||||
#....####...#####.....#.......................................######...........................................########........#####...########.......######.....####....####...#########..................#############...####.........##################.........................................................................................############...............######....####.####.#####........######......########.....####..########...........................###.........###.
|
||||
#...........#####.............................................######....................####...................#########.......#####...########.......#####......####...####......#.#####.....................##########..########..........#############...........................................................................................##########................#######..#####..###.####.........######......########.....####..#######............................####......#####.
|
||||
............#####..................................#########..######....................####...................###########.....#####....#######.......#####......####...####.....#####.##.........................#####...############..........#########..........................................................................................#########...................######.#####...###.##..##.......######.....#########............#####........................##...####......#####.
|
||||
.....#####..#####............................###############..######....................####.##................###########.....#####...#######.......######......####...####.....######............................####...###############..........######.........................................................................................########.............###.....##########......##.....#####...#######.....########...............###..........##............####.####......#####.
|
||||
..########...............................###################..######....................##################################.............#######.......######.....####...#####.....#####............................#####...###################..........#..........................................................................................######.............######.....#######......####.....##############......##########.........................#####.........##########......#####.
|
||||
..########.................############################.......######....................##################################.............#######..................####...####.....######............................#####..#######################...................................................................................................###.............########......######.....#####....###############.......#############.....................#######.......##########......#####.
|
||||
..########....################################................##........................########################################.......#######...............#######...####.....######............................####...##########################..............................................................................................................###########.....#######..#######....################......################.................#########.......####..####......####.
|
||||
..............################################..........................................########################################........######...............#######...####.....#####............................#####...######..####################..........................................................................................................#############......######.########....###############.....#..###################..............########.........#..#####......####.
|
||||
...########...###############################.............................................................######################........####........#########..#####..#####....######............................#####...######.....####################.....................................................................................................################......#############......##############....####.#####################.............#####..............####......###..
|
||||
...########...###################........................................................................................#######........####........################..#####....######...####.....................#####..######..........#################..................................................................................................##################......############..........###########....####.#########################...........###..............###.....#####..
|
||||
..............###...................................................................................................................................###################.###....######...#######..................####...######.........##################................................................................................................#####################......#########...............########....###..###########################..................................#####..
|
||||
....................................................................................................................................................###################.......######....###########.............#####...######.........##################..............................................................................................#######################.......#######...................####.....###############################...................................#####..
|
||||
....................................................................................................................................................###################.......######...################.........#####...######.........##################............................................................................................##########################......#####.............................################################..........##........................####..
|
||||
..........................................................................................................................................................#############.......######......################......####...######.........###################............................................................................................##########################.......###...........#####..............################################..........##........................##....
|
||||
..................................................................................................................................................................#####.........###..........###############...#####...######.........###################.............................................................................................##########################..................##########.............##############################..........##..............................
|
||||
...................#####................######...................................................................................................................................................#############.#####...######.........##################..............................................................................................##########################...............##################...........##########################.........###...............................
|
||||
........######....######...###################......................................................................................................................................................################...#######.....#####################...............................................................................................##########################..........###.####.#..##########..............#######################.........####..............................
|
||||
.#############...#.#####...###################.......######.............................................................................................................................................###########.....#########################.######.............................................................................................############################........#####..##.......########..................##################..........####..............................
|
||||
.#############...#.........###################.......######...............................................................................................................................................#########.....####################......######...........................................................................................##############################........######.##............###.....................###...########..........#####..............................
|
||||
.#############.........##..###################.......######................................................................#########.......................................................................########......###############..........####..........................................................................................################################..........#####..............#####........####.................####...........#####..............................
|
||||
.######...####.............######....................######.......................................................####.....#########...........................................................................###..........##########............#.............................................................................................##############################............#####..............#####.......#######.....................###.......###...............................
|
||||
..##.......####......................................######...............................###############.........#####....#########.............................................................................................................................................................................................................###########################........##.....##................####........#################..........#######...####........................###....
|
||||
..##.......####......................................######...............................###############........#####.....#########.............................................................................................................................................................................................................#########################.........###.................###...####........##################.........##############........................####...
|
||||
.###.......####......................................######...............................###############........#####.....#########..............................................................................................................................................................................................................######################..........#####........##.....###########........####.##############........###############......................#######.
|
||||
..###......####....####..............................######...............................###############........####.....##########....###...........................................................................................................................................................................................##..........####################............######.....####.....##########........####....###############.......#############......................#######.
|
||||
#####......####....#####.............................######...............................###############.......#####.....##########...####........................................................................................................................................................................................######..........###################.............######....#####.....#########........####..........#############......##########......................#######.
|
||||
######.....####....#####.............................#############........................###############.......#####.....##########...####.........................########........................................................................................................................................................#####..........####################............#######...#####.......######.........####.............#############.......#####.......................####.##.
|
||||
.#####.............#####.............##########......#############........................###############.......#####.....##########...####........................################.................................................................................................................................................#####...........###################.........###.######...#####...###....###........######.............###############...............................#####....
|
||||
.#####.............#####........###############......#############.............................................#######....##########...####........................################.................................................................................................................................................######..........####################........###########..######.#####..............########.............################............................####.....
|
||||
.#####.........##...####........###############......#####...#####.............................................#######.................#####.......................################..................................................................................................................................................#####...........###################.......#####.######...#####..###..#..............########.......###......#############..........................####.....
|
||||
.#####.......#####..#####.......###############.........##...#####......................#######............##..#######.................#####.......................################..................................................................................................................................................#####...........##################.......######.#####....#######....###...............#######..#..########.....####.#####.....##.....................##.....
|
||||
.#####..###..#####..#####.......###############........###...#####......................#######............##########..................#####.......................################................................######.........##.................................................................................................#####...........################........######.#####..##..#####....#####.....###........#########.############.####.####.....#####..................#.......
|
||||
.#####..###..#####..#####.......#....................#####...#####......................#######............##########..................#####.......................#####......#####................................###########....##########.........................................................................................######...........#############.........###########..####..######...####.....#####.........########################.#####.....#######...............#######..
|
||||
.######.###...####...####........................#########...#####......................#######..............########..................#####.......................#####......#####................................#############..#####################...............................................................................#####...........###########..........##########..##.####..####..#####......####...........######...##############.#####.....########..............#######..
|
||||
..#####.####..####...#####.......................##########..#####......................######.................#########...............#####.......................####.......#####.................................############.#############################........................................................................#####............##########..........#########..####.####..#########......####..###.........####.....####...####.#####.......#######..............#######..
|
||||
..#####.####..####...#####.......................###########.#####......................######...................#######...............#####.......................####.......####....................................##########.#############################........................................................................######...........###########........######..#..#####..##...########....##.####.####..........##......###.....###.##...........#####...............######...
|
||||
..#####.####..#####..#####...............................###.#####......................######...................######...............######......................#####.......####....................................############.#############..############.........................................................................#####............##########........#####....#######.###...###.##.....###.###.######................###......#####..............###....#.........#####.#...
|
||||
..#####.####..#####..#####................#...#..........###.#####......................######..................#######...............######......................#####......#####....................................####...#####..........####........######.........................................................................#####............###########......######..######...####...##........#####.#########..###..........#######......##..#.####............####.......########..
|
||||
..#####..###...####...####........#############....####..###.#####......................######..................#######...............######......................################................................#......#...####.......................#####..........................................................................######............##########......######.######...######...........######.#######...#####.........########....##..#######...........######......#########.
|
||||
..######.###...####...#####.......#############....####......#####.....................#######..................######................######......................################................................#####......####.......................#####...........................................................................#####............##########......######.####....#######..........#####..#######...#######........########....##########............#######......####.###.
|
||||
..######.###...#####..#####.......#############....####......#####.....................#######.................#######................######......................################................................#####......#######....................#####...........................................................................#####.............#########.....######.######..#######..........####....#####...##########........######....###########..........##.######....#######..#.
|
||||
.........####..#####..#####.......#############....####......#####.....................#######.................######.................######......................################................................#####......#######....................#####...........................................................................######............#########.....######.#######.######.........######..######...###########..........###.##..###########.........####.####.....#########..
|
||||
.........##....#####...####........................####......#####.....................#######................#######.................######......................################................................####.......#######....................#####............................................................................#####.............########....#######.##.####.#####.........######..######...###########............#.################.........###.#####.......######...
|
||||
................####...#####..........#########....####......#####.....................#######................#######..................####................######........#########...............................#####......########..............#####.#####............................................................................#####.............#######.....######.###..##.#####.........#####...######...#######.###....##.........###############........####..#####................
|
||||
................####...#####.......############....####......#####.....................#######................######.......................................#########.............................................#####......########..............#####..#####..#........................................................................######.............######.....######.###....#####..........####....#####..#######....#....#####........##.##########......######...####..............##.
|
||||
................#####..#####.......#######.........####......#####.....................#######...............#######.......................................#########...........###...............................#####......####..#...............#####..#####..#########.................................................................#####.............###.......######..##....######..........####...####...######..........#######..........#########......#######...####.............###.
|
||||
................#####..#####.......................####......#####.....................#######...............#######.......................................########............########................................####.####...................####..####...###########...............................................................#####.......................######.###..#######...........#####.####..#######..........#########........##########......######...####.............####.
|
||||
................#####...#####......................####......#####.....................#######...............######......#########........................#########...........#########.#######........................########..........................####...###########...............................................................######......................######.###..######.............#######...#######.###......###.########......#########.......####....#####.............####.
|
||||
.................####...#####.......###########....####......#####.....................#######.................####......############...####...............########...........#########.#######........................##############....................####...###########................................................................#####....................#######..###..#####..............#######..#######.#####.....###.#########......#######.......####.....####...............###.
|
||||
.................####...#####.......###########....####......#####.....................#######..........................#############..#####..................................#########.#######................###.##..##############...................#####...############...............................................................#####....................#######.####...##.................####...####...########...##############......######.......#####.....####................##.
|
||||
.................#####..#####.......###########....####......#####.....................#######..........................#############..#####..................................#################................######################...................#####..#############...............................................................######...................#####...####..###..................##..######.#..######...#################......###.......######....#####.................#.
|
||||
.................#####...####.......###########....####......#####.....................#######....#########.............####.......##..#####...........................................########................###########..#########...................#####..#############................................................................#####...................#####....#######..#...................#####...##..#.##...##.################......#.......######.....####....................
|
||||
..................####...#####......#####..........####......#####.....................#######....#########.............####...........#####...................................................................###########..............................####...#############................................................................#####..................########..#######.####.................####..#.##....###..##..#################............#####.....#####....................
|
||||
..................####...#####.....................####......#####.....................######.....#########.............####...........#####.........................###.......................................###.#######.............................#####...##############...............................................................######.................#########.######.######.................######.......######...##########.#####...........######..#...####.....................
|
||||
..................####...#####.............###...............#####.....................######.....#########.............####...........####..........................######...................................####.#######.............................#####...##############................................................................#####..................#########.####..#######.................#######....######...#####.###########..........#######.###.####......................
|
||||
..................#####..#####.........#######...............#####.....................######.....#########.............####...........####..........................######...................................####.....###............................#####....###############...............................................................#####.......##.........####.####.####.##.######.................########....####..#######.#########.........##.#########.#####......................
|
||||
..................#####...#####.......########...............#####......................................................####...........####.......................#########...................................####.....###.......###.............###..#####....###############...............................................................######....####...........#........##......#####...................#######...###...########.########........####.##.####..#####......#...............
|
||||
...................####...#####........###...................#####......................................................###............####......................###########..................................####.....###.......#############...###..#####....###############................................................................#####....####................###.....########.....................###########......##############........######....###.#####......####.............
|
||||
...................####...##....................###..........#####......................................................###...........#####......................############.................................####..............####################..#####....###############................................................................#####.....####.........##.#######...########..###...................#########.......#######.####..........######....########......######.....##....
|
||||
...................#####................##..#######....................................................................####...........#####......................############.................................#######...........####################..####.....###############................................................................######.#######........###########.#######.....####...................#######.......#############.........######......######......########..####....
|
||||
...................#####................###########....................................................................####...........#####......................############.................................##########..............##############..####.....###############.................................................................#############........###########..###.#.....######...................##########...###.########.........######......#######......###############...
|
||||
...................#####................############...................................................................############...#####......................############................................###########...####.................####..####....#################................................................................##############.......#######.####.##....############......##...........#########.####..#######.........#####.......######.......###############...
|
||||
....................####................#########......................................................................#############..####.......................############................................###########...#############.............#####....#################................................................................##############........######.####.####..#############....#####.........#############...######...........###.##.....######......#################..
|
||||
....................####................#####.........####.............................................................#############..####..........................#########...................................########...###################.......#####........##############................................................................######...####........###########.######.#####.#####....########.........###########..#######........###.#.###....######.......#################..
|
||||
....................#####..............................#####.........................................................####.......####..####..........................######.............................................#...#####################...#######.......####.......####................................................................####......####........###########.################.....#########...........#########.######.........#####.###....######......###################.
|
||||
....................###................................#####.........................................................####.............####..........................######.................................................#####################...#######.......############....................................................................####.....####........###########..#####.########.....############...........#######..#####........#########.......###.......###################.
|
||||
.................#.....................................#####.........................................................####............................................#####.................................######...................############...#######.......##############..................................................................####......###.........######..###..############.....###############..........#######...##.........########..........#......####################.
|
||||
.....###.........###...................................#####.........................................................###...................................................................................#########......................######....#####........##############...................................................................###......#####........####...####..###.#######.#....################..........#######.###.......########..................####################.
|
||||
....#########....###...................................######........................................................###..............###..................................................................#########....#####......................................############...................................................................####.....######.......####...#####.###.######.####...####....########...........#########.......#######....................###################.
|
||||
....################...................................######........................................................###..............###.......######.....................................................#########...######.......######.................................####...................................................................####.....######........####....####..####.....####....###......########..........########......##.#####.......#..........##.##################.
|
||||
....################...............####.................#####........................................................##..............####.......################...........................................#########...######.......#######.......##...............................................................................................###..#########........#####....####.#####..#######..####.......#########........#######.......####.##........###.......######################.
|
||||
....###############......#.....########.................#####.....................................#########..........#..............#####.......#################...###....................................#########...###..........#######.......#########........................................................................................###############........####.#.#####..####..###.#####.######.....#########.........#####......#######...##...#####......######################.
|
||||
.........##########...#####....########.................#####.....................................#########..............################.......#######.#########..######..#####.............................#######...###..........######........################................................................................................##########.#####........#############..##.############.######......########...........#.......########..###..#####.....#######################.
|
||||
.............######...#####....########.................#####.....................................#########..............###############........#######.#########..######..##############....................###.......###.............###........##################..#####.....................................................................#########....#####.........############....####....#####..#######.....#########.................#############.######.....#######..##############.
|
||||
.................##...#####....#########................####......................................#########..............###############..............###########..######..#################...................#.......######.....................##################..############..............................................................######.......######...........########......####.########..#######....###########..................#########..#####.....###.####...#############.
|
||||
#####.............................######.................###.........................##..........##########................#############.....................###...#####...#################...........................######..........................#############..###############...........................................................#####.........#####...........#######....##..#######.####...#######.....###########..................#######.######.....###..##.....#######.####.
|
||||
#####..............................#####.........................................######..........##########..............##....###....................................##...#################...........................######.................................######.################...........................................................######........#####............#####....####..######..#####..#######.......##########..................###########.....###..###......###########.
|
||||
#####......###.....................#####.........................................#######.........##########..............###...#########.....................................###############..................##........#####................######.............####.##..#####.######............................................................#####........######............##.....######...###..#######...######......###########...###.............#########.....###..#####.....##.#######.
|
||||
####......###########..............#####..........................................######.........##########..............###...#########......##############.............###.............###..................#####..........................######.............####.##.....##.####..............................................................#####.........#####..................########...#...##.#####..########....##...######...######............######......##..######.....###.######.
|
||||
..........################.........######................#........................######.........##########..............###...#########......##############.............###..................................#####..............####.........................######.##........####..............................................................######........#####.................##########.......#########..########..###.#######...######...............###.....###..#####......##.#######.
|
||||
..........##################.......######............#####........................######.................................###..##########.................................#######..............................#####..............####.........#####...........####...##...........................................................................#####........######................###########.....####.#####...########.##########....######.......................#########......###...#####.
|
||||
..............###############.......#####.........#########........................###............................#######.....##########.................................#######..............................####...............####.........#######.........####..................###...........................................................#####.....#########..................##########....##########.....########..#######....#####.......................#########.......##......###.
|
||||
#####...............#########.......#####.....#############.......................................................#######.....#########.....#######..........................###..............................####..............####.#........###########......###...............#######..........................................................######.############.................###.########.....#######.......########..#####....#######......................###########....###........#.
|
||||
#######......##.........#####.......#####...###############.......................................................#######........######.....#################................###...........#####.............#####..............####.############################...##....#####.#######............................................................###############...................#####.########.......###..........#######...##.....#########......................########...####.........#.
|
||||
#######.....#####........####...............###########...............................................................###...................###################..........#######################.............#####..............####.#########.##################...###...#############............................................................#############.....................#####..########.......#.............#######........############.....................######..#####.........#.
|
||||
###.........########.....####...............########........................................................................................###################..........#######################.............#####..............####.#########......#############...###...######...................................................................##########.........................#####.#######........................#######.....###############.....................####..########.....##.
|
||||
##.............######....#####...............######............................................................................................################..........########################...........######..............###..................############...###########........##...........................................................######.............................###########..........................#####......#####.###########........................###########...##.
|
||||
##...............####.....####...............######.......................................................................................................#####..........########################...........######.............................####........######..############.......####..........................................................###.................................#########.............................###.....######...###########.......................##########..###.
|
||||
##.....######.............####...............######......................................................................................................................############......................#######.............................#####...............############......######..............................................................................................#######.........###........#.##..............#####......#########........####.............########..###.
|
||||
.#....############........####...........###########.......................................................................................................................................................#######...##........................###########.............########.....########.............................................................................................######..........#####.....#######...........######.........#####.........#######.............####....#..
|
||||
......#############.......#####......###############.............................###.......................................................................................................................#######...########...................#############...............###....##########.............................................................................................####...........#######...########..........#####...........####........##########.............##....##.
|
||||
......#############........####.....################.........................#######........................###############################..###.....................................................................########.................###################.................############.............................................................................................##.............#######....######..........#####.......................############................###.
|
||||
.......############........####.....#################.....................##########.....................#######################################.....................................................................########............#....####################...............######..######...........................................................................................................#########.##.####............##...........................#########.###............###.
|
||||
.............######........####......################....................############.................##############################################.................................................................########.....#.....####..####....##.########...............######.....#####..........................................................................................................############....#.........###............................##########.#####..........###.
|
||||
.................##........#####.....#########.###........................########..................################################################...##########........................................................####....####...#####.####..........#####..............######.......#####........................................................................................................#####..#####..............#####...........................####.####..########.........#.
|
||||
...........................#####.....#####................................####....................##############################........############...##########................................................................################..........................#..######........######.......................................................................................................#####....###..............#####.......................#...###....##.###########.........
|
||||
............................#.........#..........................................................############........#########..................####..###########...............................................................############.####.........................#########........#######......................................................................................................######....##...............####.......................########.......#############.......
|
||||
##...............................................................................................############.........................................###########.......#.......................................................############.............................#########........#######........................................................................................................###########..............#####..........####.........########.........##############....
|
||||
#######..........................................................................................############..............................................######......####..##................................................############..............................########.......#.######............................................................................................................#######.............#######.........#######.......##########.........##############..
|
||||
############....................................................####.............................############.................................................###......##########..............................................############...#...........................######.......###.####..............................................................................................................######.............#########.......########......############.........############..
|
||||
############...................................................#####.............................############.................................................###.....#############...............................................########...####..........................######.....########..................................................................................................................##.............#############...########..........#########.........############..
|
||||
.###########..........................................####.....#####.............................##########...........................................................###############..............................................#######...#####..................##......#######..#######...................................................................................................................................###############.########............######.........############...
|
||||
......######..........................................##############.............................#####.................................................................################..............................................####....####...##.............#####.....##############.....................................................................................................................................#######################.....##.......####.........######...###...
|
||||
........####..............................#...........##############...................................................................................................####################............................................##...#####...####...........######.....############......................................................................................................................................######################......####..................######...##....
|
||||
.#####..####........................##########........##############....................###..............................................................................####################...............................................#####..#######....##...########....##########.......................................................................................................................................######################.....#####...................##########....
|
||||
..####...........................#############........############......................####...............................................................................#...#############................................................####...########...####..#########...#########..........................................................................................................................................##################......#####........##...........########....
|
||||
..##................#............##############........######..........................#####.....................................................................................###########......##..........................................##..########...#######..########...#######.................................................................................................................##..........................################.....#####........#####.........##.####...#.
|
||||
...........##..######............##############........##..............................#####.........................................................................................######......#####............................................########...#########..#######...#####...................................................................................................######.........###............................############......#####........#####........###.####...#.
|
||||
.......######..######............##############.......................................#####............................................................................................####......#######.........................................########...##########...########..###...................................................................................................#########......######............................##########.....#####........######........#######....#.
|
||||
...##########..######..####......#########..###.......................................#####..............................................................................................##......#########.........................................#####...#####..####.....#######......#...............................................................................................###########....########..............................######......#####...###..#####.........#######...##.
|
||||
...##########..#####...####......####.......###............................#..........####.......................................................................................................###########.........................................###...#####....#...###.#######....####............................................................................................#############..##########.................................##......####...#####...###........##.####....##.
|
||||
.############..........####...............................................#####......#####......................................................................................................#####..########.......................................#...#####........#####.######...########.........................................................................................###########################......................................#####...########...........##.####....##.
|
||||
############.......##..####..............................................#######.....#####.....................................................................................................#####...##########.........................................######.......#####...####..##########........................................................................................############################....................................#####.....########.........########...###.
|
||||
########..........###..####.............................................########.....####......................................................................................................#######...###########......................................########.....#####...###...###########.......................................................................................#############################..................................######......#######........########....###.
|
||||
#####.............###..####............................................#########....#####........................................................................................................######.....#####.####.....................................#########....###...####....#########........................................................................................###############################................................#######.##.....####........###.####......#.
|
||||
#####.............###..####............................................#########....#####................................................................................................###.......###........##########.....................................#########.......#####......########.......................................................................................###############################..................................##########....##.........#######.........
|
||||
###....................####.............................................#######.....####.................................................................................................####.....#######........#########.....................................########......####........########......................................................................................##############################.....................................##########.......####.###.####.........
|
||||
#......................####..........................................####.#####....#####................................................................................................#######.....#######........#########.....................................########...#####...##....#######.........##............................................................................############################........................................########.......#######.#####.........
|
||||
#......................####..........................................####.#####....#####................................................................................................########.....#######.........##########....................................########.####...####....#####.........#####..........................................................................###########################..........................................########.#....#######.####...######.
|
||||
.......................#####...........................................#######....#####..................................................................................................########.....########.........#########....................................############..#######..####.........#######...........................................................................########################.............................................###########.############...######.
|
||||
.......................#####.....######..................................#####....#####....................................................................................................#####........########.........#########....................................#########...########..####.......########............................................................................#######################...............................................###########..#...####....######.
|
||||
........................###############..................................#####....####......................................................................................................###...........#######..........##########...................................#######..##########...###......#######..............................................................................#####################.................................................###############.####...#######.
|
||||
........................###############..........................###.....####....#####......................................................................................................#####.........#########...........#########...................................####....#################...#######................................................................................###################...................................................##################....#######.
|
||||
....................###.###############..........................####...#####....#####.......................................................................................................#####..........########...........###########..................................#.......################.#######.................................................................................##################.......................................................###############......#####.
|
||||
.................######.############............................#####...#####....####................................................................................................###.....######..##.......#########..........###########..........................#..............######################.................................................................................###################..........................................................############.........##.
|
||||
..............#########..........###............................#####...#####...#####...............................................................................................####....#######.####.........#######............##########.......................####.............#####..#############..................................................................................##################...............................................................#######.............
|
||||
...........############.........................................####...#####....#####............##.................................................................................####...######...######.......########..............#########....................######..............###....##########....................................................................................################..................................................................#####.............
|
||||
........#############..........................................#####...#####....####............####...............................................................................####....######..#########.......########..............#########..................######......................########......................................................................................##############......................................................................#..............
|
||||
.....##############............................................#####...#####...#####...........######.............................................................................####.....#####....#########.........#######..............#########...............######........................######........................................................................................#############.....................................................................................
|
||||
...#############................................#####..........####....#####...####.............#####.............................................................................####................#########.......########..............########...............######.........................####...........................................................................................##########......................................................................................
|
||||
..###########...................................#####..........####...#####....####..............###...............................................................................##...................#########........#########...........#######............########............................##.............................................................................................#######.................................###...................................................
|
||||
..########.............#........................#####.........#####...#####....####.......................................................................................................................########........##########.#.......###.###...........#########...............................#.............................................................................................####.................................#######................................................
|
||||
...#####.......####.#####............###.........####........#####.....####....###.........................................................................................................................#########.........###########.....##................########................................###............................................................................................###.................................##########.............................................
|
||||
...###......#######.#####........##.#####.......#####........#####............####..................#........#...............................................................................................#########........###########..................##...######................................######..............................................................................................................................#############..........................................
|
||||
..........#########.#####.......###..#####......#####........#####............####.................###.....####................................................................................................#########.........##########................###..######...............................########............................................................................................................................###############.........................................
|
||||
........###########.###........#####.#####......###..........####............####.................#####...#####................#####............................................................................#######............##########.............#####..####................................##########..........................................................................................................................###############.........................................
|
||||
......##########.............#.######.#####.................#####...........#####................######..#######..............######..............................................................................#####..............#########...........########..#..................................###########.......................................................................................................................###############..........................................
|
||||
.....########..............###..######.#####..................###...........#####.................#####...#######.............#######...............................................................................#####...###........########...........#########.....................................##########......................................................................................................................#############.#..........................................
|
||||
...########................####..#####..####................................########...............###.....######........###...######..................................#..............................................####.#####..........#####............#########.....................................###########...................................................................................................................###############...........................................
|
||||
.########..........###.....#####.######.###........####.....................########............#..........#####.......######..######.................................###.............................................###.#######..........###..............#########......................................###########.................................................................................................................################...........................##.............
|
||||
########..........#####.....#####.######..........######....................########...........###..........##..........#####..######................................####...............................................#.##########..........................#########.....................................###########................................................................................................................################...........................#####..........
|
||||
######...........#####.....######..#####..........######....................#######...........#####.....................#####...........................#####........#####..................................................#########...........................########......................................###########.............................................................................................................################............................########.......
|
||||
#####............#####.....#######..####..........######...................########...........####..................###.#####...........................#####.......######..................................####........##...#########...........................########.......................................#########.............................................................................................................################...........................############....
|
||||
####............#####.......#######.##............######...................########..........####................######.#####...........................#####.......#######................................#####.......#####..#######..............................#######......................................########..............................................................................................................###############............................#####.#######...
|
||||
##.............###.#........########..............######...................#######............###................#######.#####..........................#####.......########...............................#####.......#####...#####................................########....................................#######..............................................................................................................################............................#####....####...
|
||||
#.............#####..##......#######..............######...................#######...............................#######.###............................#####........######................................####.......######....####.................................########..................##.............#########..............................................................................................................################...........................#########..##....
|
||||
...............###..####.....#######..............######...................#######................................######................................#####........######.................................###.......#####......##....................................#######................####...........#########...............................................................................................................###############............................#############....
|
||||
...........##.####..####......####................#####....................#######..............##.............#.....###...................................##.........####............................................#####.........#...................................#######..............#######.........#########..............................................................................................................################............................#############....
|
||||
......##..######.....####......##................######....................######...............###..........####.....#.......................................#.......####.............................................###.........####..................................#######.............#########......#########...............................................................................................................################........................##.###############...
|
||||
......###.######.....#####.......................######....................######..............#####........#####.............................................#####....##.........................................................######...................................######.............#########.....#########...............................................................................................................###############.........................####################.
|
||||
.....#########...#....####.......................######....................######.............########......######...........................................######....##..##.....................................................#####.....................................######.............##########...#########..............................................................................................................################.................####...#####################.
|
||||
......#######..###.....####......................######...................######..............#######.......######...........................................######.......#####.......................................###..........###.......##..............................#####...............###################...............................................................................................................################..........##.....###############.############.
|
||||
......######...####....####......................######...................######...............######........######............#.............................######......######.......................................#####.........##......####.............................######...............##################................................................................................................................##############...........#####..###############....#########.
|
||||
.....######....#####....###...............................................######..............#.####...........####......#...####..............................###.......######.#####................................######................######.............................######................###############....................................................................................................................###########..........######################........######.
|
||||
....######......####.....##.......................................####....#####..............####.#.............###....####..####.....####.....#####......................####.##########............................######...............#######..............................######................############.........................................................................................................................########..........######################.......#######.
|
||||
...######........####............................................#####....#####..............####...............#......####...###.....######...#####...####................##..############...........................####.................######..............................######..................#########.............................................................................................................................####...........###############.######.......#######.
|
||||
..######...##....#####...........................................#####....#####.............#####......................#####..####...########..#####...######..................############.............................##..................####...##...........................######..................########...........................................................................................................................................###############.....##........#######.
|
||||
.#######..###.....####...........................................#####....#####.............####.......................#####..##.....#######...####....######..##.............############...##..............................................##...####...........................######...................#####............................................................................................................................................########..#####................######.
|
||||
#######..#####.....##...........................................##.###....####................##........................####..........######......#....######..####...........############...####.................................................#####..........................#######...................####.............................................................................................................................................#######.....##...................###.
|
||||
.#####....###...................................................#####.....####.............##.........#.............##..###............................######.######.............########...######...............................................#####............................#######....................#.................................................................................................................................................###...............................
|
||||
..###......#.###................................................#####.....####.............######.....#####........###.................................######.######.................####...#########......##...................................######.............................########......................................................................................................................................................................................................
|
||||
##.#........#####..........................................###..#####.....####.............######....######.......#####....................................#..######.........................########......####................................######...............................########.....................................................................................................................................................................................................
|
||||
##....##.....####..................................###....####..####......####............#######....#####.......#######.......................................#####...........................#####......#####..#.............................#####.................................########....................................................................................................................................................................................................
|
||||
##...####....####.................................####....####..####......####............#######....#####.......#######........................................................................####......#####.####...........................####....................................#######...................................................................................................................................................................................................
|
||||
#...######....#...................................####....####.#####.....#####.............#####.......###........#####...................................................###.............................####..#####...........................##......................................#######........................................................###.......................................................................................................................................
|
||||
.....######.......................................####.........#####.....#####.....................................###....................................................#####.............................#..######...#................................................................#######......................................................######.....................................................................................................................................
|
||||
......#####.......................................####....####.#####.....#####.............#####....##..............#.....................................................#####.................................#####..####...............................................................########....................................................#######....................................................................................................................................
|
||||
.......####...............................................####.#####.....#####.............#####....######........................#####..#####...........................######...................................##...####................................................................#########.................................................##########..................................................................................................................................
|
||||
##......##................................................####.#####.....#####.............#####....######........................#####..#####...........................#####........#####............................###..............................#....................................########...............................................#############................................................................................................................................
|
||||
####......................................................####.#####.....#####.............#####....######....................##..#####..#####.######....................#####........####.............##..............................................####...................................#########.............................................###############..............................................................................................................................
|
||||
####......................................######.....#####.###.####......#####...............##.....######.......#####........##..#####..#####.######.#####...............####........####.............####............................................#####....................................########............................................################.............................................................................................................................
|
||||
#####.....................................################.....####......#####...................................#####....######.........#####.######.#####...........................####............#######.##......................................#######....................................########............................................#################...........................................................................................................................
|
||||
######....................................################.....####......#####...................................#####....######...............######.#####..........................#####............#######.####....................................#######..................###.................#######.............................................###############...........................................................................................................................
|
||||
#.####....................................################....#####......#####......................#####........#####....######........................###..........................#####............#######.######...................................#####.................######..................######................##...........................#############..........................................................................................................................#.
|
||||
|
||||
158
tools/mapstyle.withgoogle.com_houses_parks_water_roads.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||