"""記憶の店(昔働いていたファミレスを記憶から起こした店・layout_v11)を、5パターンと同じ決まりに合わせた版。 layout_v11.json(記憶のまま)は変えずに残し、ここで直した版を作る。 直したこと(2026-10-21 エイイチと決めたこと) - 建物の形:客席の奥の壁はそのまま。トイレ・パントリーの出入り口・洗い場・物置の並びが、その外へ約2.2m出っ張る - 空いた所は厨房が広がる(キッチンと冷蔵庫を奥へ延ばし、出っ張りとの間に裏の通路) - トイレへは、パントリーの壁ぞいの通路を奥へ進んで入る。元のトイレの場所は通路。トイレの手前に短い仕切り壁(約2.6m) - トイレの客席側(通路側)に厚い壁(30cm)、入口は下向き(通路の突き当たり) - 上の並びの右端の4人席は残す(当時もあった)。トイレとの間は、トイレの厚い壁と通路の仕切り壁でへだてる - 入口の右に待合を足した。レジを2.2mから2.5mにし、内側に店員の立つ所を付けた - 待機場所を2.2×0.7mから2.4×0.8mに広げた(3台のまま。1台0.8×0.8m)(2026-10-22、codex の2回目の検証を受けて) - パントリーの上の通路に出入りできなかったので、出入り口を2つ開けた(2026-10-22 エイイチの指摘。店員もここを通る) A:受け渡し口(上)のすぐ上の、パントリーの壁に1m(客席側のトイレへの通路とつながる) B:パントリーの上の端(受け渡し口(上)から上の通路へ) A・B とも扉はなく、開いているだけ。扉があるのは、上の通路から洗い場とキッチンへ入る所 - 仕切り壁の上の4人席2つを、壁との間が0.6mになるまで寄せた(ロボットが壁側から入らないように) """ import json from pathlib import Path import famires_gen2 as gen HERE = Path(__file__).parent WING_X0, WING_DEPTH = 7.6, 2.2 # 出っ張りの左端と奥行き(仮) def p0_memory(): B = json.load(open(HERE / "layout_v11.json", encoding="utf-8")) W, D0 = B["outer"]["w"], B["outer"]["d"] D = D0 + WING_DEPTH keep = {"パントリー", "冷凍庫", "保存庫", "社員トイレ", "更衣室", "こおり", "ドリンクバー"} rooms = [dict(r) for r in B["rooms"] if r["label"] in keep] rooms += [ dict(label="キッチン", rect=[12.0, 6.0, 19.0, 16.0], kind="back"), dict(label="冷蔵庫", rect=[19.0, 10.5, 21.0, 16.0], kind="back"), # 出っ張り:トイレ・パントリーの出入り口(通路)・洗い場・物置 dict(label="トイレ", rect=[WING_X0, D0, 9.5, D], kind="guest"), dict(label="洗い場", rect=[12.0, D0, 21.0, D], kind="back"), dict(label="物置", rect=[21.6, D0, W, D], kind="back"), # 建物の外(出っ張りの左) dict(label="建物の外", rect=[0.0, D0, WING_X0, D], kind="outside"), *gen.register([9.8, 2.2, 12.3, 2.9], [9.8, 2.9, 12.3, 3.7]), dict(label="待合", rect=[12.7, 0.0, 13.9, 0.5], kind="guest"), ] walls = [dict(w) for w in B["walls"] if w["label"] != "客席と裏の壁"] walls += [dict(label="客席と裏の壁", rect=[19.0, 6.0, W, 6.25])] # トイレの手前の短い仕切り壁(上の客席とトイレへの通路の間・約2.6m) walls += [dict(label="通路の仕切り壁", rect=[7.9, 14.4, 8.1, D0])] # 通路とバックヤード(パントリーの出入り口)の間の壁:パントリーの壁をトイレまで延ばす # 受け渡し口(上)のすぐ上を1m開けて、客席側(トイレへの通路)との出入り口にする(2026-10-22 エイイチと決めた) door_a = [9.5, 14.0, 9.8, 15.0] walls += [dict(label="パントリーの壁", rect=[9.5, door_a[3], 9.8, D0])] # 店員の出入り口:A=パントリーの上の通路と客席側の間、B=パントリーの上の端(受け渡し口(上)から上の通路へ) # door:扉があるか。A・B は扉のない、開いているだけの所(扉があると誰かが開けないといけないため) # 扉があるのは、上の通路から洗い場とキッチンへ入る所(位置は仮) doors = [dict(label="出入り口(パントリーの上の通路と客席)", rect=door_a, kind="staff", door=False), dict(label="出入り口(パントリーと上の通路)", rect=[9.8, 13.9, 12.0, 14.0], kind="staff", door=False), dict(label="洗い場の扉", rect=[12.2, D0, 13.1, D0 + 0.1], kind="staff", door=True), dict(label="キッチンの扉", rect=[12.2, 15.9, 13.1, 16.0], kind="staff", door=True)] # トイレの壁:通路側(下)は厚さ30cm、入口0.9m。右(パントリーの出入り口側)も壁 door_x0, door_x1 = 8.3, 9.2 walls += [dict(label="トイレの壁", rect=[WING_X0, D0, door_x0, D0 + 0.3]), dict(label="トイレの壁", rect=[door_x1, D0, 9.5, D0 + 0.3]), dict(label="トイレの壁", rect=[9.2, D0 + 0.3, 9.5, D])] toilet_door = [door_x0, D0 - 1.2, door_x1, D0] tables = [] for t in B["tables"]: if t["type"] == "t4": tables.append(dict(type="t4", x=round(t["x"] - 0.6, 2), y=round(t["y"] - 0.6, 2), w=1.2, h=1.2, seats=4)) elif t["type"] == "r4": tables.append(dict(type="r4", x=round(t["x"] - 0.55, 2), y=round(t["y"] - 0.55, 2), w=1.1, h=1.1, seats=4)) elif t["type"] == "long6": tables.append(dict(type="long6", x=round(t["x"] - 1.6, 2), y=round(t["y"] - 0.97, 2), w=3.2, h=1.94, seats=6)) else: tables.append({k: t[k] for k in ("type", "x", "y", "w", "h", "seats", "flip", "mirror") if k in t}) # 仕切り壁(y 8.6〜9.0)の上の4人席2つ:壁との間が1.0mあり、ロボットが壁側から入っていたので、 # 下の区画と同じ0.6m(ロボットが通れない幅)まで壁に寄せる(2026-10-22 エイイチの指摘) for t in tables: if t["type"] == "t4" and abs(t["y"] - 10.0) < 1e-6: t["y"] = 9.6 # 待機場所:記憶のまま(2.2×0.7m)だと3台分(1台0.8×0.8m)に足りないので、右に0.2m・手前に0.1m広げる(2026-10-22 エイイチと決めた) sb0 = B["robot_standby"] standby = dict(label=sb0["label"], rect=[12.2, 5.1, 14.6, 5.9], slots=3) dish = [d for d in B["dish_up"] if "下" in d["label"]] + [d for d in B["dish_up"] if "下" not in d["label"]] outline = [(0, 0), (W, 0), (W, D), (WING_X0, D), (WING_X0, D0), (0, D0)] return dict(name="② 定番の郊外型", style="定番の郊外型", outer=dict(w=W, d=D), outline=outline, entrance=dict(side="bottom", a0=B["entrance"]["x0"], a1=B["entrance"]["x1"]), rooms=rooms, walls=walls, toilet_doors=[toilet_door], dish_up=dish, doors=doors, robot_standby=standby, tables=tables)