(client) feat:支持定义实体的碰撞体大小和偏移;建筑支持定义实体建筑和瓦片建筑,建筑支持指定按钮回调;添加存档管理器;Dev支持设置是否暂停;实体允许定义事件组;添加基地界面 (#57)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/57
This commit is contained in:
2025-09-28 15:02:57 +08:00
parent 87a8abe86c
commit aff747be17
232 changed files with 39203 additions and 4161 deletions

View File

@@ -18,4 +18,15 @@
<li>TreeGenerator</li>
</mapGenerators>
</DimensionDef>
<DimensionDef>
<defName>DefaultBaseDimension</defName>
<label>默认基地维度地图</label>
<description>默认基地维度地图的描述</description>
<mapGenerators>
<li>BaseFloorFiller</li>
<li>BaseUpWallFiller</li>
<li>BaseDownWallFiller</li>
<li>BaseBuildingGenerator</li>
</mapGenerators>
</DimensionDef>
</Define>

View File

@@ -8,7 +8,7 @@
<value>
{
"tileDefName":"Water",
"elseTileDefName":"Grass",
"elseTileDefName":"Grassland",
"mapCellSizeX":100,
"mapCellSizeY":100,
"threshold":0,
@@ -58,8 +58,8 @@
<value>
{
"tileDefName":"Tree",
"mapCellSizeX":100,
"mapCellSizeY":100,
"mapCellSizeX":50,
"mapCellSizeY":50,
"requiredBaseTileDefName":"Grass",
"density":0.2,
"threshold":0,
@@ -67,4 +67,96 @@
}
</value>
</MapGeneratorDef>
<MapGeneratorDef>
<defName>BaseBuildingGenerator</defName>
<label>基地建筑生成器</label>
<description>一个简单的基地建筑生成器,填充地图为基地建筑</description>
<workClass>BuildingMapGenerator</workClass>
<value>
{
"defName":"ConcreteWall",
"positionX":15,
"positionY":20,
"mapping":
{
1:"ConcreteWall",
2:"SkillTreeShop"
},
"pattern": [
[2]
]
}
</value>
</MapGeneratorDef>
<MapGeneratorDef>
<defName>BaseFloorFiller</defName>
<label>基地地板填充</label>
<description>一个简单的基地地板填充生成器,填充地图为基地地板</description>
<workClass>BasicTerrainMapGenerator</workClass>
<value>
{
"tileDefName":"BaseFloor",
"mapCellSizeX":30,
"mapCellSizeY":30,
"threshold":-1,
"Scale":2,
"offsetX":0,
"offsetY":0
}
</value>
</MapGeneratorDef>
<MapGeneratorDef>
<defName>BaseUpWallFiller</defName>
<label>基地顶部墙面绘制</label>
<description>一个简单的基地墙面绘制生成器,填充地图为基地墙面</description>
<workClass>BasicTerrainMapGenerator</workClass>
<value>
{
"tileDefName":"BaseWall",
"mapCellSizeX":30,
"mapCellSizeY":1,
"threshold":-1,
"Scale":2,
"originX":0,
"originY":30
}
</value>
</MapGeneratorDef>
<MapGeneratorDef>
<defName>BaseDownWallFiller</defName>
<label>基地底部墙面绘制</label>
<description>一个简单的基地墙面绘制生成器,填充地图为基地墙面</description>
<workClass>BasicTerrainMapGenerator</workClass>
<value>
{
"tileDefName":"BaseWall",
"mapCellSizeX":30,
"mapCellSizeY":1,
"threshold":-1,
"Scale":2,
"originX":0,
"originY":0
}
</value>
</MapGeneratorDef>
<MapGeneratorDef>
<defName>BaseLeftWallFiller</defName>
<label>基地左侧墙面绘制</label>
<description>一个简单的基地墙面绘制生成器,填充地图为基地墙面</description>
<workClass>BasicTerrainMapGenerator</workClass>
<value>
{
"tileDefName":"BaseWall",
"mapCellSizeX":1,
"mapCellSizeY":30,
"threshold":-1,
"Scale":2,
"originX":0,
"originY":0
}
</value>
</MapGeneratorDef>
</Define>

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<ImageDef>
<defName>Grassland</defName>
<path>Resources\Map\Outdoor Ground\Grassland.png</path>
<wCount>9</wCount>
<hCount>3</hCount>
<pixelsPerUnit>8</pixelsPerUnit>
</ImageDef>
<TileDef>
<defName>Grassland</defName>
<label>草地</label>
<description>地图上的草地瓦片,构成废弃工业区的地面。</description>
<collider>None</collider>
<texture>Grassland_17</texture>
<rules>
<rule>
<neighborConditions>
<li>This</li><li>This</li><li>This</li>
<li>This</li> <li>This</li>
<li>This</li><li>This</li><li>This</li>
</neighborConditions>
<outputType>Random</outputType>
<chance>0.2</chance>
<animationTextures>
<li>Grassland_0</li>
<li>Grassland_1</li>
<li>Grassland_2</li>
<li>Grassland_8</li>
<li>Grassland_9</li>
<li>Grassland_10</li>
<li>Grassland_11</li>
<li>Grassland_13</li>
<!-- <li>Grassland_17</li> -->
<li>Grassland_18</li>
<li>Grassland_19</li>
<li>Grassland_20</li>
</animationTextures>
<outputCollider>None</outputCollider>
</rule>
<rule>
<neighborConditions>
<li>This</li><li>This</li><li>This</li>
<li>This</li> <li>This</li>
<li>This</li><li>This</li><li>This</li>
</neighborConditions>
<animationTextures>
<li>Grassland_17</li>
</animationTextures>
<outputCollider>None</outputCollider>
</rule>
</rules>
</TileDef>
<ImageDef>
<defName>BaseFloor</defName>
<path>Resources\Map\Base\BaseFloor.jpg</path>
<wCount>4</wCount>
<hCount>4</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<!-- 基地地板瓦片 -->
<TileDef>
<defName>BaseFloor</defName>
<label>基地地板</label>
<description>地图上的基地地板瓦片,构成废弃工业区的地面。</description>
<collider>None</collider>
<texture>BaseFloor_0</texture>
<rules>
<rule>
<neighborConditions>
<li>Any</li><li>Any</li><li>Any</li>
<li>Any</li> <li>Any</li>
<li>Any</li><li>Any</li><li>Any</li>
</neighborConditions>
<outputType>Random</outputType>
<chance>0.5</chance>
<animationTextures>
<li>BaseFloor_0</li>
<li>BaseFloor_1</li>
<li>BaseFloor_2</li>
<li>BaseFloor_3</li>
<li>BaseFloor_4</li>
<li>BaseFloor_5</li>
<li>BaseFloor_6</li>
<li>BaseFloor_7</li>
<li>BaseFloor_8</li>
<li>BaseFloor_9</li>
<li>BaseFloor_10</li>
<li>BaseFloor_11</li>
<li>BaseFloor_12</li>
<li>BaseFloor_13</li>
<li>BaseFloor_14</li>
<li>BaseFloor_15</li>
</animationTextures>
<outputCollider>None</outputCollider>
</rule>
</rules>
</TileDef>
<ImageDef>
<defName>BaseWall</defName>
<path>Resources\Map\Base\WallUp.png</path>
<wCount>4</wCount>
<hCount>3</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<TileDef>
<defName>BaseWall</defName>
<label>基地墙壁</label>
<description>地图上的基地墙壁瓦片,构成废弃工业区的墙壁。</description>
<collider>Grid</collider>
<texture>BaseWall_0</texture>
<rules>
<rule>
<neighborConditions>
<li>Any</li><li>NotThis</li><li>Any</li>
<li>This</li> <li>This</li>
<li>Any</li><li>NotThis</li><li>Any</li>
</neighborConditions>
<chance>0.5</chance>
<outputType>Random</outputType>
<animationTextures>
<li>BaseWall_0</li>
<li>BaseWall_1</li>
<li>BaseWall_2</li>
<li>BaseWall_3</li>
</animationTextures>
<outputCollider>Grid</outputCollider>
</rule>
</rules>
</TileDef>
</Define>