From 3d34fbc7cce4283bb09e23f4103e6d5e26d25f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Thu, 23 Jul 2026 17:24:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=98=E7=BD=91=E9=A6=96=E9=A1=B5=EF=BC=9A?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=20YUSEN=20=E5=B0=8F=E6=A0=87=E3=80=81?= =?UTF-8?q?=E5=8F=B3=E4=B8=8A=E8=A7=92=E7=99=BB=E5=BD=95/=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E3=80=81=E8=BF=9B=E5=85=A5=E6=B8=B8=E6=88=8F=E8=B5=B0?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=97=B8=E3=80=81=E8=A1=A5=20favicon?= =?UTF-8?q?=EF=BC=9B=E8=A1=A5=E5=85=85=20game=5Fbase=20=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E4=B8=8E=20yt=5Fworld=20=E6=B2=99=E7=9B=98?= =?UTF-8?q?=E8=AE=B0=E5=BF=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/game_base/views/game_base_views.xml | 5 +- addons/yt_world/__init__.py | 2 + addons/yt_world/__manifest__.py | 14 +++ addons/yt_world/controllers/__init__.py | 1 + addons/yt_world/controllers/world_api.py | 61 ++++++++++ addons/yt_world/models/__init__.py | 4 + addons/yt_world/models/constants.py | 15 +++ addons/yt_world/models/yt_resource.py | 20 ++++ addons/yt_world/models/yt_world.py | 88 ++++++++++++++ addons/yt_world/models/yt_world_tile.py | 52 ++++++++ addons/yt_world/models/yt_world_tile_micro.py | 22 ++++ addons/yt_world/security/ir.model.access.csv | 5 + addons/yt_world/static/description/icon.png | Bin 0 -> 91061 bytes addons/yt_world/views/yt_world_views.xml | 111 ++++++++++++++++++ assets/game-api.js | 18 +++ index.html | 60 ++++++---- 16 files changed, 456 insertions(+), 22 deletions(-) create mode 100644 addons/yt_world/__init__.py create mode 100644 addons/yt_world/__manifest__.py create mode 100644 addons/yt_world/controllers/__init__.py create mode 100644 addons/yt_world/controllers/world_api.py create mode 100644 addons/yt_world/models/__init__.py create mode 100644 addons/yt_world/models/constants.py create mode 100644 addons/yt_world/models/yt_resource.py create mode 100644 addons/yt_world/models/yt_world.py create mode 100644 addons/yt_world/models/yt_world_tile.py create mode 100644 addons/yt_world/models/yt_world_tile_micro.py create mode 100644 addons/yt_world/security/ir.model.access.csv create mode 100644 addons/yt_world/static/description/icon.png create mode 100644 addons/yt_world/views/yt_world_views.xml diff --git a/addons/game_base/views/game_base_views.xml b/addons/game_base/views/game_base_views.xml index 90a90fd..d363075 100644 --- a/addons/game_base/views/game_base_views.xml +++ b/addons/game_base/views/game_base_views.xml @@ -1,8 +1,9 @@ - - + + diff --git a/addons/yt_world/__init__.py b/addons/yt_world/__init__.py new file mode 100644 index 0000000..f7209b1 --- /dev/null +++ b/addons/yt_world/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import controllers diff --git a/addons/yt_world/__manifest__.py b/addons/yt_world/__manifest__.py new file mode 100644 index 0000000..5844ba5 --- /dev/null +++ b/addons/yt_world/__manifest__.py @@ -0,0 +1,14 @@ +{ + 'name': '宇森世界 - 沙盘与微观世界', + 'version': '0.2', + 'summary': '地表存储(沙盘记忆) + 微观世界(1:1预留) + 资源(框架)', + 'description': '每个玩家拥有一个确定性生成的世界;仅持久化玩家改过的地表地块(种子+增量覆盖)。微观世界独立为 1:1 模型仅预留,资源模型为框架。', + 'category': 'Game', + 'depends': ['base'], + 'data': [ + 'security/ir.model.access.csv', + 'views/yt_world_views.xml', + ], + 'application': True, + 'license': 'AGPL-3', +} diff --git a/addons/yt_world/controllers/__init__.py b/addons/yt_world/controllers/__init__.py new file mode 100644 index 0000000..5838dba --- /dev/null +++ b/addons/yt_world/controllers/__init__.py @@ -0,0 +1 @@ +from . import world_api diff --git a/addons/yt_world/controllers/world_api.py b/addons/yt_world/controllers/world_api.py new file mode 100644 index 0000000..bcfaa0c --- /dev/null +++ b/addons/yt_world/controllers/world_api.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +import json +from odoo import http +from odoo.http import request, Response + + +def _json(data): + """返回 UTF-8 JSON 响应(与 game_base 一致)。""" + return Response( + json.dumps(data, ensure_ascii=False), + content_type='application/json; charset=utf-8', + ) + + +def _post_body(): + try: + raw = request.httprequest.get_data(as_text=True) or '{}' + return json.loads(raw) + except Exception: + return {} + + +class YtWorldApi(http.Controller): + """前端沙盘记忆接口(JSON over HTTP)。auth=user:需已登录 Odoo。 + 前端统一带 ?db=game 且 credentials:'same-origin',故路由须为 type='http' + 并以 _json 返回原始 JSON(与 game-api.js 的 fetch().json() 对齐)。""" + + @http.route('/yt_world/api/world', type='http', auth='user', + methods=['GET', 'OPTIONS'], csrf=False) + def world(self, **kw): + """取或建当前用户世界,导出 seed + 地块覆盖。""" + user = request.env.user + rec = request.env['yt.world'].sudo().get_or_create_for_user(user) + return _json(rec.export_state()) + + @http.route('/yt_world/api/tiles/save', type='http', auth='user', + methods=['POST', 'OPTIONS'], csrf=False) + def save_tiles(self, **kw): + """增量覆盖保存地块。body: {"tiles": [...]}""" + user = request.env.user + world = request.env['yt.world'].sudo().search( + [('user_id', '=', user.id)], limit=1) + if not world: + return _json({'ok': False, 'error': 'no_world'}) + body = _post_body() + tiles = body.get('tiles') or [] + world.import_tiles(tiles) + return _json({'ok': True, 'saved': len(tiles)}) + + @http.route('/yt_world/api/settings', type='http', auth='user', + methods=['POST', 'OPTIONS'], csrf=False) + def save_settings(self, **kw): + """保存相机/UI 偏好。body: {"settings": {...}}""" + user = request.env.user + world = request.env['yt.world'].sudo().search( + [('user_id', '=', user.id)], limit=1) + body = _post_body() + settings = body.get('settings') + if world and settings is not None: + world.settings = settings + return _json({'ok': True}) diff --git a/addons/yt_world/models/__init__.py b/addons/yt_world/models/__init__.py new file mode 100644 index 0000000..de42408 --- /dev/null +++ b/addons/yt_world/models/__init__.py @@ -0,0 +1,4 @@ +from . import yt_world +from . import yt_world_tile +from . import yt_world_tile_micro +from . import yt_resource diff --git a/addons/yt_world/models/constants.py b/addons/yt_world/models/constants.py new file mode 100644 index 0000000..67c8618 --- /dev/null +++ b/addons/yt_world/models/constants.py @@ -0,0 +1,15 @@ +TERRAIN_SELECTION = [ + ('water', '水域'), + ('desert', '荒漠'), + ('plain', '平原'), + ('forest', '森林'), + ('mountain', '山脉'), + ('snow', '雪地'), +] + +RESOURCE_TYPE_SELECTION = [ + ('wood', '木材'), + ('food', '食物'), + ('stone', '石料'), + ('fish', '鱼获'), +] diff --git a/addons/yt_world/models/yt_resource.py b/addons/yt_world/models/yt_resource.py new file mode 100644 index 0000000..ad692d1 --- /dev/null +++ b/addons/yt_world/models/yt_resource.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields +from .constants import RESOURCE_TYPE_SELECTION + + +class YtResource(models.Model): + """资源(框架模型)。本期仅结构,不接入玩法产出/消耗。""" + _name = 'yt.resource' + _description = '资源(框架)' + + tile_id = fields.Many2one('yt.world.tile', string='所属地块', ondelete='cascade') + micro_id = fields.Many2one('yt.world.tile.micro', string='所属微观世界', ondelete='cascade') + type = fields.Selection(RESOURCE_TYPE_SELECTION, string='资源类型') + amount = fields.Float(string='数量', default=0.0) + capacity = fields.Float(string='容量上限', default=100.0) # [PLACEHOLDER] 调参 + + _sql_constraints = [ + ('uniq_res_tile', 'unique(tile_id, type)', + '同地块同类型资源唯一'), + ] diff --git a/addons/yt_world/models/yt_world.py b/addons/yt_world/models/yt_world.py new file mode 100644 index 0000000..cd9bfff --- /dev/null +++ b/addons/yt_world/models/yt_world.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields +import random + + +class YtWorld(models.Model): + """玩家世界:每个用户一条。seed 再生基础地图,tile_ids 存被改地块。""" + _name = 'yt.world' + _description = '玩家世界' + + name = fields.Char(string='世界名称', translate=True) + user_id = fields.Many2one('res.users', string='拥有者', + required=True, ondelete='cascade', index=True) + seed = fields.Integer(string='生成种子', required=True, index=True) + world_version = fields.Integer(string='生成算法版本', default=1) + settings = fields.Json(string='世界设置') # 相机位/缩放/UI 偏好 + tile_ids = fields.One2many('yt.world.tile', 'world_id', string='地表地块') + created_at = fields.Datetime(string='创建时间', default=fields.Datetime.now) + last_active = fields.Datetime(string='最后活跃') + + # ---------- 接口方法(供 controller 调用) ---------- + + def get_or_create_for_user(self, user): + """取当前用户的世界;没有则按随机 seed 新建。""" + rec = self.search([('user_id', '=', user.id)], limit=1) + if not rec: + rec = self.create({ + 'user_id': user.id, + 'seed': random.randint(1, 2_000_000_000), + 'name': '我的世界', + }) + rec.last_active = fields.Datetime.now() + return rec + + def export_state(self): + """导出前端需要的世界状态:seed + 地块覆盖列表。""" + self.ensure_one() + tiles = [] + for t in self.tile_ids: + tiles.append({ + 'q': t.q, + 'r': t.r, + 'terrain': t.terrain or None, + 'height': t.height or None, + 'flags': t.flags or {}, + 'micro_world_id': t.micro_world_id.id if t.micro_world_id else None, + }) + return { + 'world_id': self.id, + 'seed': self.seed, + 'world_version': self.world_version, + 'settings': self.settings or {}, + 'tiles': tiles, + } + + def import_tiles(self, tiles): + """增量覆盖:upsert 地块。terrain/height/flags 全回退底图则删除覆盖行。""" + self.ensure_one() + tile_model = self.env['yt.world.tile'] + for tv in (tiles or []): + q, r = tv.get('q'), tv.get('r') + if q is None or r is None: + continue + terrain = tv.get('terrain') + height = tv.get('height') + flags = tv.get('flags') + # 全部回退底图 → 删覆盖行,保持最小集(种子+增量覆盖原则) + if not terrain and height is None and not (flags or {}): + existing = tile_model.search([ + ('world_id', '=', self.id), ('q', '=', q), ('r', '=', r)]) + if existing: + existing.unlink() + continue + vals = {} + if terrain is not None: + vals['terrain'] = terrain + if height is not None: + vals['height'] = height + if flags is not None: + vals['flags'] = flags + existing = tile_model.search([ + ('world_id', '=', self.id), ('q', '=', q), ('r', '=', r)]) + if existing: + existing.write(vals) + else: + vals.update({'q': q, 'r': r, 'world_id': self.id}) + tile_model.create(vals) # create 钩子自动建微观占位 + self.last_active = fields.Datetime.now() diff --git a/addons/yt_world/models/yt_world_tile.py b/addons/yt_world/models/yt_world_tile.py new file mode 100644 index 0000000..1937f30 --- /dev/null +++ b/addons/yt_world/models/yt_world_tile.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api +from .constants import TERRAIN_SELECTION + + +class YtWorldTile(models.Model): + """地表地块:本期实际持久化内容(坐标 + 高度 + 属性 + 微观世界关联位)。""" + _name = 'yt.world.tile' + _description = '地表地块' + _rec_name = 'coord' + + world_id = fields.Many2one('yt.world', string='所属世界', + required=True, ondelete='cascade') + q = fields.Integer(string='轴向坐标Q', required=True) + r = fields.Integer(string='轴向坐标R', required=True) + terrain = fields.Selection(TERRAIN_SELECTION, string='地形', index=True) + height = fields.Integer(string='高度等级') # heightLevel 1-12 + flags = fields.Json(string='地表标记') # {claimed, decorated} + micro_world_id = fields.Many2one('yt.world.tile.micro', + string='微观世界', ondelete='set null') + updated_at = fields.Datetime(string='更新时间', default=fields.Datetime.now) + coord = fields.Char(string='坐标标识', compute='_compute_coord', store=True) + + _sql_constraints = [ + ('uniq_tile', 'unique(world_id, q, r)', + '同一世界内 (坐标) 的地块必须唯一'), + ] + + @api.depends('q', 'r') + def _compute_coord(self): + for t in self: + t.coord = "%s,%s" % (t.q, t.r) + + @api.model + def create(self, vals): + rec = super(YtWorldTile, self).create(vals) + rec._ensure_micro() + return rec + + def _ensure_micro(self): + """新建地块时同步建 1:1 微观世界占位。""" + for t in self: + if not t.micro_world_id: + m = self.env['yt.world.tile.micro'].create({'tile_id': t.id}) + t.micro_world_id = m + + @api.model + def write(self, vals): + # 任何编辑都刷新 updated_at + if 'updated_at' not in vals: + vals['updated_at'] = fields.Datetime.now() + return super(YtWorldTile, self).write(vals) diff --git a/addons/yt_world/models/yt_world_tile_micro.py b/addons/yt_world/models/yt_world_tile_micro.py new file mode 100644 index 0000000..811609c --- /dev/null +++ b/addons/yt_world/models/yt_world_tile_micro.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields + + +class YtWorldTileMicro(models.Model): + """微观世界(预留 1:1 模型)。当前仅骨架,内容与资源后续开发。""" + _name = 'yt.world.tile.micro' + _description = '微观世界(预留)' + + tile_id = fields.Many2one('yt.world.tile', string='所属地块', + required=True, ondelete='cascade') + name = fields.Char(string='微观世界名称', translate=True) + # ===== 预留字段(后续放开,本期不实现) ===== + # people = fields.Json(string='居民') # [{id, name, job, mood, x, y}] + # buildings = fields.Json(string='建筑') # [{type, level, x, y, rot}] + # resources = fields.Json(string='资源') # {wood, food, stone, fish} + # =========================================== + + _sql_constraints = [ + ('uniq_micro', 'unique(tile_id)', + '一个地块只能有一个微观世界(一对一)'), + ] diff --git a/addons/yt_world/security/ir.model.access.csv b/addons/yt_world/security/ir.model.access.csv new file mode 100644 index 0000000..3cbaddd --- /dev/null +++ b/addons/yt_world/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_yt_world,yt.world,model_yt_world,base.group_user,1,1,1,1 +access_yt_world_tile,yt.world.tile,model_yt_world_tile,base.group_user,1,1,1,1 +access_yt_world_tile_micro,yt.world.tile.micro,model_yt_world_tile_micro,base.group_user,1,1,1,1 +access_yt_resource,yt.resource,model_yt_resource,base.group_user,1,1,1,1 diff --git a/addons/yt_world/static/description/icon.png b/addons/yt_world/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4561b42ad9be21f67bb2db46907229458c9b4755 GIT binary patch literal 91061 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/addons/yt_world/views/yt_world_views.xml b/addons/yt_world/views/yt_world_views.xml new file mode 100644 index 0000000..92aa1b9 --- /dev/null +++ b/addons/yt_world/views/yt_world_views.xml @@ -0,0 +1,111 @@ + + + + + + + + + 玩家世界 + yt.world + list,form + + + + yt.world.list + yt.world + + + + + + + + + + + + + yt.world.form + yt.world + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + 地表地块 + yt.world.tile + list,form + + + + yt.world.tile.list + yt.world.tile + + + + + + + + + + + + + + + yt.world.tile.form + yt.world.tile + +
+ + + + + + + + + + + + +
+
+
+ +
diff --git a/assets/game-api.js b/assets/game-api.js index d114327..f057274 100644 --- a/assets/game-api.js +++ b/assets/game-api.js @@ -39,4 +39,22 @@ const API = { async announcements() { return (await fetch('/game/api/announcements?db=game', { credentials: 'same-origin' })).json(); }, + // ---------- 沙盘记忆(yt_world 模块) ---------- + async world() { + return (await fetch('/yt_world/api/world?db=game', { credentials: 'same-origin' })).json(); + }, + async saveTiles(tiles) { + return (await fetch('/yt_world/api/tiles/save?db=game', { + method: 'POST', credentials: 'same-origin', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ tiles }), + })).json(); + }, + async saveSettings(settings) { + return (await fetch('/yt_world/api/settings?db=game', { + method: 'POST', credentials: 'same-origin', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ settings }), + })).json(); + }, }; diff --git a/index.html b/index.html index 6c5b90f..3ff0dc2 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,9 @@ + + +