plugin & note

main
Yogi 2023-11-02 11:33:17 +08:00
parent 3ef14f7ded
commit 39b2503568
19 changed files with 6163 additions and 52 deletions

View File

@ -1,4 +1,6 @@
{ {
"accentColor": "", "accentColor": "",
"baseFontSize": 15 "baseFontSize": 15,
"theme": "obsidian",
"cssTheme": "Minimal"
} }

View File

@ -1,3 +1,5 @@
[ [
"obsidian-better-command-palette" "obsidian-better-command-palette",
"colored-tags",
"html-server"
] ]

View File

@ -0,0 +1,14 @@
{
"chroma": 128,
"lightness": 0,
"palette": 16,
"seed": 5,
"knownTags": {
"GODOT": 1,
"Linux": 2,
"worldtree": 3,
"tes": 4,
"todo": 5
},
"_version": 2
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
{
"id": "colored-tags",
"name": "Colored Tags",
"version": "3.0.1",
"minAppVersion": "0.15.0",
"description": "Colorizes tags in different colors. Colors of nested tags are mixed with parent tags. Text color contrast is automatically matched to comply with AA level of WCAG 2.1.",
"author": "Pavel Frankov",
"authorUrl": "https://github.com/pfrankov",
"isDesktopOnly": false
}

View File

@ -0,0 +1,26 @@
{
"port": 8080,
"hostname": "0.0.0.0",
"defaultFile": "",
"startOnLoad": true,
"useRibbonButons": true,
"indexHtml": "<html>\n<head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover\">\n <title>#VAR{HTML_TITLE}</title>\n <link rel=\"shortcut icon\" href=\"#VAR{FAVICON_URL}\">\n <link href=\"#VAR{CSS_FILE_URL}\" type=\"text/css\" rel=\"stylesheet\">\n <base href=\"/\">\n</head>\n<body\n class=\"#VAR{THEME_MODE} mod-windows is-frameless is-maximized is-hidden-frameless obsidian-app show-inline-title show-view-header\"\n style=\"--zoom-factor:1; --font-text-size:16px;\">\n <div class=\"app-container\">\n <div class=\"horizontal-main-container\">\n <div class=\"workspace\">\n <div class=\"workspace-split mod-vertical mod-root\">\n <div class=\"workspace-tabs mod-top mod-top-left-space mod-top-right-space\">\n <div class=\"workspace-tab-container\">\n <div class=\"workspace-leaf\">\n <div class=\"workspace-leaf-content\" data-type=\"markdown\" data-mode=\"preview\">\n <div class=\"view-content\">\n <div class=\"markdown-reading-view\" style=\"width: 100%; height: 100%;\">\n <div\n class=\"markdown-preview-view markdown-rendered node-insert-event is-readable-line-width allow-fold-headings show-indentation-guide allow-fold-lists\"\n tabindex=\"-1\" style=\"tab-size: 4;\">\n <div class=\"markdown-preview-sizer markdown-preview-section\" style=\"padding-bottom: 369px; min-height: 1158px;\">\n <div class=\"markdown-preview-pusher\" style=\"width: 1px; height: 0.1px; margin-bottom: 0px;\"></div>\n <div class=\"mod-header\">\n <div class=\"inline-title\" contenteditable=\"true\" spellcheck=\"false\" tabindex=\"-1\" enterkeyhint=\"done\">#VAR{RENDERED_CONTENT_FILE_NAME}\n </div>\n #VAR{RENDERED_CONTENT}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</body>\n</html>",
"htmlReplaceableVariables": [
{
"varName": "HTML_TITLE",
"varValue": "Obsidian Html Server"
},
{
"varName": "FAVICON_URL",
"varValue": "//obsidian.md/favicon.ico"
},
{
"varName": "CSS_FILE_URL",
"varValue": "/.obsidian/plugins/obsidian-http-server/app.css"
}
],
"showAdvancedOptions": false,
"useSimpleAuth": false,
"simpleAuthUsername": "obsidian",
"simpleAuthPassword": "0b2cd1ba70b8b332"
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
{
"id": "html-server",
"name": "Html Server",
"version": "1.0.7",
"minAppVersion": "0.15.0",
"description": "This plugin lets you spin up a local http server to access your vault via a web browser from any device in your network.",
"author": "Pr0dt0s",
"authorUrl": "https://github.com/Pr0dt0s",
"fundingUrl": {
"Buy Me a Coffee": "https://www.buymeacoffee.com/pr0dt0s",
"Paypal": "https://www.paypal.com/donate/?business=JGQK6YQBWZJ4A&currency_code=USD"
},
"isDesktopOnly": true
}

View File

@ -0,0 +1,67 @@
.settings-error-element {
font-weight: bold;
color: var(--background-modifier-error);
}
.with-error {
border-color: var(--text-error) !important;
}
.with-success {
border-color: var(--text-success) !important;
}
.w100p {
width: 100%;
}
.h350 {
height: 350px;
}
.text-align-center {
text-align: center;
}
.justify-content-center {
justify-content: center;
}
.html-form-container {
width: 100%;
display: grid;
justify-content: center;
padding-bottom: 22px;
}
.html-login-form {
width: 20%;
min-width: 300px;
max-width: 450px;
margin: auto;
}
.html-login-form .html-login-form-label{
font-size: 1.1em;
justify-content: center;
display: block;
}
.html-login-form .setting-item-control input{
width: 100%;
}
.html-login-form .html-form-button{
width: 100%;
/* justify-content: center; */
}
.html-login-form .html-form-button button{
width: 100%;
justify-content: center;
}
.http-server-ribbon-stop-button {
color: var(--text-accent);
opacity: 0.95;
}

View File

@ -0,0 +1,8 @@
{
"name": "Minimal",
"version": "7.3.4",
"minAppVersion": "1.1.9",
"author": "@kepano",
"authorUrl": "https://twitter.com/kepano",
"fundingUrl": "https://www.buymeacoffee.com/kepano"
}

File diff suppressed because one or more lines are too long

View File

@ -4,28 +4,28 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "71e57ba867937b57", "id": "00c5403030b32171",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "5e6e04e0870d7cdb", "id": "206697680cbd422c",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "TODO模板.md", "file": "Today Todo.md",
"mode": "source", "mode": "source",
"source": false "source": false
} }
} }
}, },
{ {
"id": "a2149cf1fbaf30db", "id": "31175f6045aa6e9b",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "目的达成流程PDCA.md", "file": "TagSystem.md",
"mode": "source", "mode": "source",
"source": false "source": false
} }
@ -82,7 +82,7 @@
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 200 "width": 296.5
}, },
"right": { "right": {
"id": "94db76309491c04e", "id": "94db76309491c04e",
@ -98,7 +98,7 @@
"state": { "state": {
"type": "backlink", "type": "backlink",
"state": { "state": {
"file": "目的达成流程PDCA.md", "file": "TagSystem.md",
"collapseAll": false, "collapseAll": false,
"extraContext": false, "extraContext": false,
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
@ -115,7 +115,7 @@
"state": { "state": {
"type": "outgoing-link", "type": "outgoing-link",
"state": { "state": {
"file": "目的达成流程PDCA.md", "file": "TagSystem.md",
"linksCollapsed": false, "linksCollapsed": false,
"unlinkedCollapsed": true "unlinkedCollapsed": true
} }
@ -138,16 +138,15 @@
"state": { "state": {
"type": "outline", "type": "outline",
"state": { "state": {
"file": "目的达成流程PDCA.md" "file": "TagSystem.md"
} }
} }
} }
], ]
"currentTab": 3
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 300, "width": 297.5,
"collapsed": true "collapsed": true
}, },
"left-ribbon": { "left-ribbon": {
@ -159,25 +158,38 @@
"templates:Insert template": false, "templates:Insert template": false,
"command-palette:Open command palette": false, "command-palette:Open command palette": false,
"random-note:Open random note": false, "random-note:Open random note": false,
"workspaces:Manage workspace layouts": false "workspaces:Manage workspace layouts": false,
"html-server:Turn Http Server On": false,
"html-server:Turn Http Server Off": false
} }
}, },
"active": "a2149cf1fbaf30db", "active": "31175f6045aa6e9b",
"lastOpenFiles": [ "lastOpenFiles": [
"Today Todo.md",
"TagSystem.md",
"Aseets/TagSystem.drawio.png",
"TODO.md",
"Godot GDScript Trick.md",
"Untitled Kanban.md",
"2023-11-01.md",
"GDShader.md",
"foragerlike.md",
"TODO模板.md",
"vim.md",
"积极心理.md",
"Think in UML.canvas",
"linux安装与应用.md",
"README.md",
"目的达成流程PDCA.md",
"Git.md",
"Godot Shader.md",
"Godot 中文教程.md",
"Aseets/Pasted image 20231028133136.png", "Aseets/Pasted image 20231028133136.png",
"Aseets/Pasted image 20231028133035.png", "Aseets/Pasted image 20231028133035.png",
"TODO模板.md",
"目的达成流程PDCA.md",
"TMP.md", "TMP.md",
"Godot 中文教程.md",
"lazygit.md", "lazygit.md",
"Linux Setup.md", "Linux Setup.md",
"linux安装与应用.md",
"Lunarvim.md", "Lunarvim.md",
"README.md",
"Think in UML.canvas",
"TODO.md",
"积极心理.md",
"dwm桌面.md", "dwm桌面.md",
"WorldTreeModule.md", "WorldTreeModule.md",
"Watching List.md" "Watching List.md"

BIN
Aseets/TagSystem.drawio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

1
Godot Shader.md Normal file
View File

@ -0,0 +1 @@
[【转载】【Godot4】常见的视觉特效着色器技术 - Common VFX Shader Techniques ft. Godot_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1C84y1R7KD/?spm_id_from=333.1007.tianma.1-3-3.click&vd_source=ba468568caebc92479698e83c28be8b0)

20
TODO.md
View File

@ -1,19 +1,7 @@
## 2013-10-27 ## Wish List
- [ ] English(Every Day) this will be good
- [x] 做好 Signal up 的解决方案文档 - [ ] Youtube
- [x] 把游戏的UI流程进行一个梳理与绘图
- [x] 队伍面板
- [ ] 商店,钓鱼,采集,等面板
- [x] 战斗UI
- [x] 本地化功能模块
- [x] 探索
- [x] 拓展
- [ ] 存档模块分析
- [ ] 编辑器开发
- [ ] 类似实现标签模块
- [ ] Fog调优
[Today Todo](Today%20Todo.md)
## Reference ## Reference
[项目模块](./WorldTreeModule.md) [项目模块](./WorldTreeModule.md)

1
TagSystem.md Normal file
View File

@ -0,0 +1 @@
![](TagSystem.drawio.png)

View File

@ -2,10 +2,21 @@
"nodes":[ "nodes":[
{"id":"295515b74130b4c1","type":"group","x":60,"y":-360,"width":940,"height":1440,"label":"基于需求开发(面向对象开发)"}, {"id":"295515b74130b4c1","type":"group","x":60,"y":-360,"width":940,"height":1440,"label":"基于需求开发(面向对象开发)"},
{"id":"f7a5a05e3b3adbee","type":"group","x":-880,"y":-360,"width":907,"height":1440,"label":"基于顺序流程开发 (面向流程开发)"}, {"id":"f7a5a05e3b3adbee","type":"group","x":-880,"y":-360,"width":907,"height":1440,"label":"基于顺序流程开发 (面向流程开发)"},
{"id":"5598149665daee13","type":"group","x":-96,"y":-840,"width":246,"height":380,"label":"现实因果"},
{"id":"01381dfb0d849945","type":"group","x":177,"y":120,"width":707,"height":180,"label":"节点(对象)"}, {"id":"01381dfb0d849945","type":"group","x":177,"y":120,"width":707,"height":180,"label":"节点(对象)"},
{"id":"5598149665daee13","type":"group","x":-96,"y":-840,"width":246,"height":380,"label":"现实因果"},
{"id":"e55941a9e3bc5761","type":"text","text":"节点A","x":218,"y":-100,"width":111,"height":60}, {"id":"e55941a9e3bc5761","type":"text","text":"节点A","x":218,"y":-100,"width":111,"height":60},
{"id":"3dd7047c8798b5be","type":"text","text":"因","x":98,"y":-320,"width":67,"height":60}, {"id":"3dd7047c8798b5be","type":"text","text":"因","x":98,"y":-320,"width":67,"height":60},
{"id":"c33ab99b87004926","type":"text","text":"果","x":898,"y":-320,"width":67,"height":60},
{"id":"4ae0834068c8c432","type":"text","text":"封装/特性/继承/聚合/多态","x":584,"y":220,"width":280,"height":50},
{"id":"02979079622fc748","type":"text","text":"节点D","x":731,"y":-100,"width":111,"height":60},
{"id":"baeb4b1fe957ac3e","type":"text","text":"节点C","x":550,"y":-175,"width":111,"height":60},
{"id":"6e4257fdd05e9ae8","type":"text","text":"功能计算","x":444,"y":140,"width":160,"height":50},
{"id":"7aab729a19843255","type":"text","text":"节点B","x":358,"y":-175,"width":111,"height":60},
{"id":"301c14f628e0d44e","type":"text","text":"节点E","x":390,"y":15,"width":111,"height":60},
{"id":"6cd0aa5fd7e08b73","type":"text","text":"数据","x":197,"y":140,"width":131,"height":50},
{"id":"be3e0105f3877ef9","type":"text","text":"- 对象眼界狭窄, 只关心和自己相关的几个对象, 不关心和自己无关的\n- 没有特性的可以称之为类, 被赋予特性后, 可以被称之为实例\n- 需求发生改变时, 一般是直接新增类. 不会大幅度的影响其他对象.\n- 举例\n\t- 面向对象就像是把建造一辆车这个目标, 分解成建造每一个零部件后组装\n\t- 当车辆更新换代的时候, 用于组装的类会发生变更(可以重载或是继承), 也会新增一些新的对象类型(同样可以是继承和承载)","x":233,"y":660,"width":583,"height":260},
{"id":"b78f0a5a2d476e66","type":"text","text":"``` python\nfunc main(i)\n\ta = nodeA.do(i)\n\tb = nodeB.do(a)\n\te = nodeE.do(a)\n\tf = nodeF.do(b,a,e)\n\tc = nodeC.do(b)\n\to = nodeD.do(c,f)\n\treturn o\n```","x":233,"y":360,"width":583,"height":280},
{"id":"67cc784857841adc","type":"text","text":"特性","x":320,"y":220,"width":160,"height":50},
{"id":"e151bed3b296b893","type":"file","file":"WorldTreeModule.md","x":2080,"y":-352,"width":1120,"height":2132}, {"id":"e151bed3b296b893","type":"file","file":"WorldTreeModule.md","x":2080,"y":-352,"width":1120,"height":2132},
{"id":"43c25dad51fed755","type":"text","text":"## 流程划分\n- 进入游戏\n- 新建存档\n- 配置角色存档\n- 读取存档\n- 进入主场景\n- 打开战斗场景\n- 关闭战斗场景\n- 退出主场景\n- 写入存档\n- 游戏结束","x":1760,"y":-352,"width":192,"height":363}, {"id":"43c25dad51fed755","type":"text","text":"## 流程划分\n- 进入游戏\n- 新建存档\n- 配置角色存档\n- 读取存档\n- 进入主场景\n- 打开战斗场景\n- 关闭战斗场景\n- 退出主场景\n- 写入存档\n- 游戏结束","x":1760,"y":-352,"width":192,"height":363},
{"id":"c38d1a12d50745c6","type":"text","text":"## 大地图解决方案\n\n## 必做方案\n- 从美术那里获得`大地图`(比如一个种族的地图)\n- 程序切图变成`小地图`且批量命名\n\n### 普通 2D 方案\n- 详情参考`2DPathFindExample'\n- 配置流产\n\t- 一张`小地图` 可以作为一个 `场景` 使用\n\t- 每个场景中, 配置 `物理碰撞` `AI寻路` `城池` `副本` 等等\n- 此做法类似我们早期使用Unity实现的方法思路, 但是他有更方便的 2D 功能\n#### 优劣分析\n- 优: 自定义能力极强\n- 劣: 相比较其他方案, 批量修改处理不易\n- 劣: 相比较其他方案, 需要实现大地图编辑器, 从而实现游戏内配置, 方便进行直观的配置 (运行增删查改, 动态加载等等)\n\n### Tile Map方案\n- 详情参考 `TileMapExample`\n- 配置流程\n\t- (笔刷) 先配置 每个网格资源 本身的属性 (比如 可以AI导航区域, 碰撞区域, 颜色, 材质, 高度 等等)\n\t- (底色) 用`小地图`做背景\n\t- (画图) 再在把网格刷在地图上\n- 网格中的物体: 1. 可交互 2.可挡路 3.可以动态消失和增加\n\n### 优劣分析\n- 优: 性能不错, 我测试下来性能可以接受\n- 劣: Godot在编辑时, 有可能会闪退 具体原因不明\n- 劣: 因为是基于网格的, 所以具体的网格都是以格子为基准的, 比如 \"材质\" \"高度\" \"导航区域\" \"碰撞区域\". 没有其他方式的那种自定义的方式自由 (必须是格子图)\n","x":3280,"y":-352,"width":960,"height":1090}, {"id":"c38d1a12d50745c6","type":"text","text":"## 大地图解决方案\n\n## 必做方案\n- 从美术那里获得`大地图`(比如一个种族的地图)\n- 程序切图变成`小地图`且批量命名\n\n### 普通 2D 方案\n- 详情参考`2DPathFindExample'\n- 配置流产\n\t- 一张`小地图` 可以作为一个 `场景` 使用\n\t- 每个场景中, 配置 `物理碰撞` `AI寻路` `城池` `副本` 等等\n- 此做法类似我们早期使用Unity实现的方法思路, 但是他有更方便的 2D 功能\n#### 优劣分析\n- 优: 自定义能力极强\n- 劣: 相比较其他方案, 批量修改处理不易\n- 劣: 相比较其他方案, 需要实现大地图编辑器, 从而实现游戏内配置, 方便进行直观的配置 (运行增删查改, 动态加载等等)\n\n### Tile Map方案\n- 详情参考 `TileMapExample`\n- 配置流程\n\t- (笔刷) 先配置 每个网格资源 本身的属性 (比如 可以AI导航区域, 碰撞区域, 颜色, 材质, 高度 等等)\n\t- (底色) 用`小地图`做背景\n\t- (画图) 再在把网格刷在地图上\n- 网格中的物体: 1. 可交互 2.可挡路 3.可以动态消失和增加\n\n### 优劣分析\n- 优: 性能不错, 我测试下来性能可以接受\n- 劣: Godot在编辑时, 有可能会闪退 具体原因不明\n- 劣: 因为是基于网格的, 所以具体的网格都是以格子为基准的, 比如 \"材质\" \"高度\" \"导航区域\" \"碰撞区域\". 没有其他方式的那种自定义的方式自由 (必须是格子图)\n","x":3280,"y":-352,"width":960,"height":1090},
@ -15,19 +26,8 @@
{"id":"20e8d9b9baff4d3d","type":"text","text":"因","x":-76,"y":-540,"width":67,"height":60}, {"id":"20e8d9b9baff4d3d","type":"text","text":"因","x":-76,"y":-540,"width":67,"height":60},
{"id":"a1a7be26d20eaca1","type":"text","text":"抽象","x":-19,"y":-660,"width":96,"height":29}, {"id":"a1a7be26d20eaca1","type":"text","text":"抽象","x":-19,"y":-660,"width":96,"height":29},
{"id":"3749392e088d5fa1","type":"text","text":"现实","x":-19,"y":-820,"width":96,"height":29}, {"id":"3749392e088d5fa1","type":"text","text":"现实","x":-19,"y":-820,"width":96,"height":29},
{"id":"c33ab99b87004926","type":"text","text":"果","x":898,"y":-320,"width":67,"height":60},
{"id":"4ae0834068c8c432","type":"text","text":"封装/特性/继承/聚合/多态","x":584,"y":220,"width":280,"height":50},
{"id":"6ecc964c9042cafe","type":"text","text":"结果","x":744,"y":140,"width":120,"height":50}, {"id":"6ecc964c9042cafe","type":"text","text":"结果","x":744,"y":140,"width":120,"height":50},
{"id":"02979079622fc748","type":"text","text":"节点D","x":731,"y":-100,"width":111,"height":60},
{"id":"ccc50c45875e8121","type":"text","text":"节点F","x":550,"y":-45,"width":111,"height":60}, {"id":"ccc50c45875e8121","type":"text","text":"节点F","x":550,"y":-45,"width":111,"height":60},
{"id":"baeb4b1fe957ac3e","type":"text","text":"节点C","x":550,"y":-175,"width":111,"height":60},
{"id":"6e4257fdd05e9ae8","type":"text","text":"功能计算","x":444,"y":140,"width":160,"height":50},
{"id":"7aab729a19843255","type":"text","text":"节点B","x":358,"y":-175,"width":111,"height":60},
{"id":"301c14f628e0d44e","type":"text","text":"节点E","x":390,"y":15,"width":111,"height":60},
{"id":"6cd0aa5fd7e08b73","type":"text","text":"数据","x":197,"y":140,"width":131,"height":50},
{"id":"be3e0105f3877ef9","type":"text","text":"- 对象眼界狭窄, 只关心和自己相关的几个对象, 不关心和自己无关的\n- 没有特性的可以称之为类, 被赋予特性后, 可以被称之为实例\n- 需求发生改变时, 一般是直接新增类. 不会大幅度的影响其他对象.\n- 举例\n\t- 面向对象就像是把建造一辆车这个目标, 分解成建造每一个零部件后组装\n\t- 当车辆更新换代的时候, 用于组装的类会发生变更(可以重载或是继承), 也会新增一些新的对象类型(同样可以是继承和承载)","x":233,"y":660,"width":583,"height":260},
{"id":"b78f0a5a2d476e66","type":"text","text":"``` python\nfunc main(i)\n\ta = nodeA.do(i)\n\tb = nodeB.do(a)\n\te = nodeE.do(a)\n\tf = nodeF.do(b,a,e)\n\tc = nodeC.do(b)\n\to = nodeD.do(c,f)\n\treturn o\n```","x":233,"y":360,"width":583,"height":280},
{"id":"67cc784857841adc","type":"text","text":"特性","x":320,"y":220,"width":160,"height":50},
{"id":"150aa8c33533e9d6","type":"text","text":"果","x":-215,"y":-335,"width":67,"height":60}, {"id":"150aa8c33533e9d6","type":"text","text":"果","x":-215,"y":-335,"width":67,"height":60},
{"id":"a86a7ac36ae3f4f0","type":"text","text":"``` python\nfunc main(i)\n\ta = get(i)\n\tb = ClacA(a)\n\te = ClacE(a)\n\tf = CalcF(b,a,e)\n\tc = CalcC(b)\n\to = CalcO(c,f)\n\treturn o\n\n# 需求变更时, 新写方法, 插入/删除流程\n```","x":-728,"y":-245,"width":583,"height":285}, {"id":"a86a7ac36ae3f4f0","type":"text","text":"``` python\nfunc main(i)\n\ta = get(i)\n\tb = ClacA(a)\n\te = ClacE(a)\n\tf = CalcF(b,a,e)\n\tc = CalcC(b)\n\to = CalcO(c,f)\n\treturn o\n\n# 需求变更时, 新写方法, 插入/删除流程\n```","x":-728,"y":-245,"width":583,"height":285},
{"id":"a5b1c2cce5f1efbb","type":"text","text":"功能计算","x":-519,"y":-333,"width":160,"height":50}, {"id":"a5b1c2cce5f1efbb","type":"text","text":"功能计算","x":-519,"y":-333,"width":160,"height":50},

3
Today Todo.md Normal file
View File

@ -0,0 +1,3 @@
- [ ] 对UE的TagSystem进行分析
- [ ] 实现对应代码功能 (抄脚本)
- [ ] 实现配置编辑器功能

23
foragerlike.md Normal file
View File

@ -0,0 +1,23 @@
## Reference
### Steam Game
- Forager
- Dwarf Fortress
- Vexlands
- Cookie Clicker
- Satisfactory
- Factorio
- RTS: Red Alert
- Running with Rifles
- RTT: Door Kickers 2, Shadow Tactics(三部曲)
### Art Style Game
- [【极简塔防 | 开发第三集】demo完成欢迎下载试玩_哔哩哔哩bilibili](https://www.bilibili.com/video/BV1pj411e7Vk/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=ba468568caebc92479698e83c28be8b0)
- Geometry Arena 几何竞技场
### Game Video
[【风笑试玩】一款赚钱扩地经营冒险游戏丨Vexlands (Demo) 试玩_单机游戏热门视频 (bilibili.com)](https://www.bilibili.com/video/BV1D84y1X78b/?vd_source=ba468568caebc92479698e83c28be8b0)
### Novel
- 人在火影,我是蓝染 (好事做尽的坏人和幕后黑手)
- 箱子里的大明, 这游戏也太真实了, 玩家超正义, 我的玩家好凶猛 (游戏策划流, 种田, DND)