refactor(1.6): 更新口袋空间穿梭机相关翻译
- 修改了 Building_WULA_ArmedShuttleWithPocket.xml 中的标签翻译 - 更新了 WULA_PocketShuttle.xml 中的口袋空间相关文本 - 移除了不必要的注释和冗余代码
This commit is contained in:
Binary file not shown.
@@ -298,7 +298,7 @@
|
||||
<!-- 口袋空间退出点定义 -->
|
||||
<ThingDef ParentName="PocketMapExit">
|
||||
<defName>WULA_PocketMapExit</defName>
|
||||
<label>pocket space exit</label>
|
||||
<label>运输机升降平台</label>
|
||||
<description>An exit portal that allows return from the pocket space to the main map.</description>
|
||||
<thingClass>WulaFallenEmpire.Building_PocketMapExit</thingClass>
|
||||
<size>(3,3)</size>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<WULA.PocketSpace.InitializeDesc>初始化穿梭机的内部口袋空间。这将在穿梭机内部创建维度储存空间。</WULA.PocketSpace.InitializeDesc>
|
||||
|
||||
<WULA.PocketSpace.Enter>进入内部空间</WULA.PocketSpace.Enter>
|
||||
<WULA.PocketSpace.EnterDesc>进入穿梭机的内部口袋空间。无需骇入即可直接访问。选中的殖民者将被传送到内部空间。</WULA.PocketSpace.EnterDesc>
|
||||
<WULA.PocketSpace.EnterDesc>进入穿梭机的内部口袋空间。选中的殖民者将被传送到内部空间。</WULA.PocketSpace.EnterDesc>
|
||||
|
||||
|
||||
<WULA.PocketSpace.ViewMap>查看内部空间</WULA.PocketSpace.ViewMap>
|
||||
@@ -33,7 +33,6 @@
|
||||
<WULA.PocketSpace.TransferSuccess>{0} 名人员已成功传送到内部空间。</WULA.PocketSpace.TransferSuccess>
|
||||
|
||||
<!-- 存储管理对话框 -->
|
||||
|
||||
<WULA.PocketSpace.PawnCount>内部空间人员: {0}</WULA.PocketSpace.PawnCount>
|
||||
<WULA.PocketSpace.NoPawnsSelected>请选择至少一名殖民者进入内部空间。</WULA.PocketSpace.NoPawnsSelected>
|
||||
|
||||
@@ -42,25 +41,4 @@
|
||||
<WULA.PocketSpace.ExitToMainMapDesc>通过口袋空间出口返回主地图。</WULA.PocketSpace.ExitToMainMapDesc>
|
||||
<WULA.PocketSpace.ExitSuccess>{0} 已成功返回主地图。</WULA.PocketSpace.ExitSuccess>
|
||||
|
||||
<!-- 建筑标签和描述 -->
|
||||
<WULA_ArmedShuttleWithPocket.label>内置空间武装穿梭机</WULA_ArmedShuttleWithPocket.label>
|
||||
<WULA_ArmedShuttleWithPocket.description>一架配备了集成口袋空间技术的先进化燃料动力穿梭机。装备有防御炮塔和无需骇入即可访问的内部储存维度。非常适合长距离探索和移动作战行动。</WULA_ArmedShuttleWithPocket.description>
|
||||
|
||||
<!-- 武器相关 -->
|
||||
<Gun_ChargeBlasterAdvancedTurret.label>先进充能爆破器</Gun_ChargeBlasterAdvancedTurret.label>
|
||||
<Gun_ChargeBlasterAdvancedTurret.description>一种升级版脉冲充能速射爆破器,配备增强型瞄准系统和提升的火力输出。</Gun_ChargeBlasterAdvancedTurret.description>
|
||||
|
||||
<WULA_Bullet_ArmedShuttleAdvanced.label>先进穿梭机炮弹</WULA_Bullet_ArmedShuttleAdvanced.label>
|
||||
|
||||
<!-- 天降物相关 -->
|
||||
<ArmedShuttleWithPocketIncoming_WULA.label>内置空间武装穿梭机(降落中)</ArmedShuttleWithPocketIncoming_WULA.label>
|
||||
<ArmedShuttleWithPocketLeaving_WULA.label>内置空间武装穿梭机(起飞中)</ArmedShuttleWithPocketLeaving_WULA.label>
|
||||
|
||||
<!-- 运输船相关 -->
|
||||
<Ship_ArmedShuttleWithPocket.label>内置空间武装穿梭机</Ship_ArmedShuttleWithPocket.label>
|
||||
|
||||
<!-- 退出点建筑 -->
|
||||
<WULA_PocketMapExit.label>口袋空间出口</WULA_PocketMapExit.label>
|
||||
<WULA_PocketMapExit.description>一个传送门出口,允许从口袋空间返回到主地图。</WULA_PocketMapExit.description>
|
||||
|
||||
</LanguageData>
|
||||
File diff suppressed because one or more lines are too long
@@ -29,10 +29,21 @@ namespace WulaFallenEmpire
|
||||
// 生成内部地板
|
||||
GenerateFloor(map);
|
||||
|
||||
// 生成一些基础设施(照明等)
|
||||
GenerateBasicInfrastructure(map);
|
||||
|
||||
Log.Message("[WULA] WULA pocket space generation completed");
|
||||
|
||||
// 添加预制件生成
|
||||
// 注意:这里需要根据实际的PrefabDef名称进行加载
|
||||
// 暂时使用一个示例PrefabDef名称,实际使用时应替换
|
||||
PrefabDef customPrefabDef = DefDatabase<PrefabDef>.GetNamed("YourCustomPrefabDefName", false);
|
||||
if (customPrefabDef != null)
|
||||
{
|
||||
GeneratePrefab(map, customPrefabDef);
|
||||
Log.Message($"[WULA] Generated custom prefab: {customPrefabDef.defName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning("[WULA] Custom prefab 'YourCustomPrefabDefName' not found. Skipping prefab generation.");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -208,46 +219,53 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成基础设施
|
||||
/// 生成预制件
|
||||
/// </summary>
|
||||
private void GenerateBasicInfrastructure(Map map)
|
||||
private void GeneratePrefab(Map map, PrefabDef prefabDef)
|
||||
{
|
||||
IntVec3 mapSize = map.Size;
|
||||
IntVec3 center = map.Center;
|
||||
|
||||
// 获取灯具定义
|
||||
ThingDef lampDef = DefDatabase<ThingDef>.GetNamed("StandingLamp", false) ??
|
||||
DefDatabase<ThingDef>.GetNamed("TorchLamp", false) ??
|
||||
DefDatabase<ThingDef>.GetNamed("Campfire", false);
|
||||
|
||||
if (lampDef == null)
|
||||
if (prefabDef == null)
|
||||
{
|
||||
Log.Warning("[WULA] No lamp definition found, skipping lighting generation");
|
||||
Log.Error("[WULA] PrefabDef is null, cannot generate prefab.");
|
||||
return;
|
||||
}
|
||||
|
||||
// 在四个角落放置照明设备
|
||||
var lightPositions = new List<IntVec3>
|
||||
{
|
||||
new IntVec3(2, 0, 2), // 左下角
|
||||
new IntVec3(mapSize.x - 3, 0, 2), // 右下角
|
||||
new IntVec3(2, 0, mapSize.z - 3), // 左上角
|
||||
new IntVec3(mapSize.x - 3, 0, mapSize.z - 3) // 右上角
|
||||
};
|
||||
|
||||
foreach (IntVec3 pos in lightPositions)
|
||||
// 获取预制件的中心点,将其放置在口袋空间的中心
|
||||
IntVec3 mapCenter = map.Center;
|
||||
IntVec3 prefabOrigin = mapCenter - new IntVec3(prefabDef.size.x / 2, 0, prefabDef.size.z / 2);
|
||||
|
||||
// 生成物品
|
||||
foreach (var thingData in prefabDef.GetThings())
|
||||
{
|
||||
if (pos.InBounds(map) && pos.Standable(map))
|
||||
IntVec3 thingPos = prefabOrigin + thingData.cell;
|
||||
if (thingPos.InBounds(map))
|
||||
{
|
||||
// 放置立式灯
|
||||
Thing lamp = ThingMaker.MakeThing(lampDef);
|
||||
lamp.SetFaction(null);
|
||||
GenPlace.TryPlaceThing(lamp, pos, map, ThingPlaceMode.Direct);
|
||||
Thing thing = ThingMaker.MakeThing(thingData.data.def, thingData.data.stuff);
|
||||
if (thing != null)
|
||||
{
|
||||
// PrefabThingData 不包含 factionDef,派系通常在生成时由上下文决定
|
||||
// thing.SetFaction(thingData.data.factionDef != null ? Faction.OfPlayerSilentFail : null);
|
||||
GenPlace.TryPlaceThing(thing, thingPos, map, ThingPlaceMode.Direct);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 在中心区域留出空间,这里将放置退出点
|
||||
// 不在这里放置退出点,因为这会由Building_ArmedShuttleWithPocket来处理
|
||||
// 生成地形
|
||||
foreach (var terrainData in prefabDef.GetTerrain())
|
||||
{
|
||||
IntVec3 terrainPos = prefabOrigin + terrainData.cell;
|
||||
if (terrainPos.InBounds(map))
|
||||
{
|
||||
map.terrainGrid.SetTerrain(terrainPos, terrainData.data.def);
|
||||
}
|
||||
}
|
||||
|
||||
// 递归生成子预制件(如果存在)
|
||||
foreach (var subPrefabData in prefabDef.GetPrefabs())
|
||||
{
|
||||
// 这里需要递归调用GeneratePrefab,但为了简化,暂时只处理顶层
|
||||
// 实际项目中,可能需要更复杂的逻辑来处理子预制件的位置和旋转
|
||||
Log.Warning($"[WULA] Sub-prefabs are not fully supported in this simple generator: {subPrefabData.data.def.defName}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user