在电脑上打开看更舒服
// 定义游戏内所有实体(物品、建筑、生物等)的基础数据类,继承自可建造物定义
public class ThingDef : BuildableDef
{
// 基础属性
public Type thingClass; // 实体逻辑处理类(如Building_Door)
public ThingCategory category; // 分类(家具/武器/资源等)
public TickerType tickerType; // 更新频率(Rare=每250刻,Normal=每60刻)
public int stackLimit = 1; // 最大堆叠数量(1=不可堆叠)
public IntVec2 size = IntVec2.One; // 占用格数(2x2建筑为IntVec2(2,2))
public bool destroyable = true; // 是否可被摧毁(重要建筑设为false)
public bool rotatable = true; // 是否可旋转方向(门/床等)
public bool smallVolume; // 是否为小体积物品(影响存储规则)
public bool useHitPoints = true; // 是否具有耐久度(可被损坏)
public bool receivesSignals; // 是否接收信号(电路元件)
// 组件系统
public List<CompProperties> comps = new List<CompProperties>(); // 组件属性(如CompProperties_Power)
public List<ThingDef> virtualDefs; // 虚拟变体定义(不同材质版本)
public ThingDef virtualDefParent; // 父级虚拟定义
[NoTranslate]
public string devNote; // 开发者注释(仅编辑器可见)
// 掉落物系统
public List<ThingDefCountRangeClass> killedLeavingsRanges; // 被摧毁时掉落范围(随机数量)
public List<ThingDefCountClass> killedLeavings; // 固定掉落物(玩家友好时)
public List<ThingDefCountClass> killedLeavingsPlayerHostile; // 敌对时掉落物
public float killedLeavingsChance = 1f; // 掉落概率(0.5=50%几率掉落)
public bool forceLeavingsAllowed; // 强制允许掉落(无视常规限制)
// 生产系统
public List<ThingDefCountClass> butcherProducts; // 屠宰产物(肉/皮革等)
public List<ThingDefCountClass> smeltProducts; // 冶炼产物(金属锭)
public bool smeltable; // 是否可冶炼
public bool burnableByRecipe; // 是否可通过配方燃烧
// 生成与交互
public bool randomizeRotationOnSpawn; // 生成时随机旋转方向
public List<DamageMultiplier> damageMultipliers; // 伤害类型抗性(火焰×0.5等)
public bool isTechHediff; // 是否为科技植入物(机械族相关)
public RecipeMakerProperties recipeMaker; // 配方生成属性(可制作物品)
public ThingDef minifiedDef; // 打包后的形态(如未安装的太阳能板)
public bool isUnfinishedThing; // 是否为未完成品(制作中途物品)
// 地图生成
public bool leaveResourcesWhenKilled; // 被摧毁时保留资源(如岩石留下石块)
public ThingDef slagDef; // 冶炼失败产物(通常为废渣)
public bool isFrameInt; // 是否为建筑框架(建造中的结构)
public List<IntVec3> multipleInteractionCellOffsets; // 多格建筑的交互单元格偏移
public IntVec3 interactionCellOffset = IntVec3.Zero; // 交互单元格偏移(工作台使用位置)
public bool hasInteractionCell; // 是否有专用交互单元格
public ThingDef interactionCellIcon; // 交互单元格图标(如研究台显微镜)
public bool interactionCellIconReverse; // 图标是否反向显示(镜像处理)
public ThingDef filthLeaving; // 留下的污物类型(血迹等)
// 调试与生成
public bool forceDebugSpawnable; // 强制显示在调试生成菜单
public bool intricate; // 是否为精密物品(需要高级工作台)
public bool scatterableOnMapGen = true; // 地图生成时是否随机散布
public float deepCommonality; // 深层矿产生成概率(0-1)
public int deepCountPerCell = 300; // 每格深层矿产数量
public int deepCountPerPortion = -1; // 每次开采获取数量(-1=全部)
public IntRange deepLumpSizeRange = IntRange.zero; // 矿脉尺寸范围
public float generateCommonality = 1f; // 常规生成概率系数
public float generateAllowChance = 1f; // 允许生成概率(过滤特殊条件)
private bool canOverlapZones = true; // 是否允许与区域重叠(存储区等)
public FloatRange startingHpRange = FloatRange.One; // 初始耐久度范围(0.8-1.0)
// 物品组生成
[NoTranslate]
public List<string> thingSetMakerTags; // 物品组生成标签(战利品包等)
public bool alwaysFlee; // 生物是否总是逃跑(非战斗动物)
public List<RecipeDef> recipes; // 可使用的配方列表(工作台功能)
// 耐久系统
public bool messageOnDeteriorateInStorage = true; // 存储损坏时显示消息
public bool deteriorateFromEnvironmentalEffects = true; // 受环境影响损坏(雨水等)
public bool canDeteriorateUnspawned; // 未放置时是否损坏(库存中)
public bool canLoadIntoCaravan = true; // 是否可装入商队
public bool isMechClusterThreat; // 是否为机械族集群威胁部件
// 界面显示
public FloatRange displayNumbersBetweenSameDefDistRange = FloatRange.Zero; // 同类物品显示间距
public int minRewardCount = 1; // 任务奖励最小数量
public bool preventSkyfallersLandingOn; // 阻止空投舱降落在此(敏感设备)
public FactionDef requiresFactionToAcquire; // 需要特定派系才能获得(专属物品)
public float relicChance; // 成为遗迹的概率(任务奖励)
public OrderedTakeGroupDef orderedTakeGroup; // 有序搬运组定义(优先搬运顺序)
public int allowedArchonexusCount; // 在Archonexus任务中允许的最大数量
public int possessionCount; // 同时持有数量限制(特殊物品)
public bool notifyMapRemoved; // 地图移除时触发通知(任务物品)
public bool canScatterOver = true; // 是否允许其他物品覆盖其上
public bool genericMarketSellable = true; // 是否可在普通市场出售
public bool drawHighlight; // 是否显示高亮轮廓
public Color? highlightColor; // 自定义高亮颜色(默认黄色)
public bool autoTargetNearbyIdenticalThings; // 自动锁定附近同类目标(炮塔等)
public bool preventDroppingThingsOn; // 阻止物品掉落在此(精密设备)
public bool hiddenWhileUndiscovered; // 未发现时隐藏(古代危险)
public bool disableImpassableShotOverConfigError; // 禁用无法射击的配置错误提示
public bool showInSearch = true; // 是否显示在搜索列表中
// 图形系统
public GraphicData graphicData; // 图形配置(纹理路径/颜色等)
public DrawerType drawerType = DrawerType.RealtimeOnly; // 绘制类型(实时/地图模式)
public bool drawOffscreen; // 是否绘制屏幕外部分(大型建筑)
public ColorGenerator colorGenerator; // 颜色生成器(随机材质颜色)
public float hideAtSnowDepth = 99999f; // 积雪隐藏深度(单位:米)
public bool drawDamagedOverlay = true; // 是否显示损坏覆盖层(裂痕效果)
public bool castEdgeShadows; // 是否投射边缘阴影(立体效果)
public float staticSunShadowHeight; // 固定阳光阴影高度(不随太阳移动)
public bool useSameGraphicForGhost; // 蓝图是否使用相同图形
public bool useBlueprintGraphicAsGhost; // 使用蓝图图形作为幽灵状态
public List<ThingStyleChance> randomStyle; // 随机样式配置(不同外观变体)
public float randomStyleChance; // 随机样式概率(0-1)
public bool canEditAnyStyle; // 是否允许编辑所有样式(MOD支持)
public ThingDef defaultStuff; // 默认材质(未指定时使用)
public int killedLeavingsExpandRect; // 掉落物扩展区域(防止物品卡墙)
public float minifiedDrawScale = 1f; // 打包后的绘制比例
public Rot4 overrideMinifiedRot = Rot4.Invalid; // 打包后的强制旋转方向
public Vector3 minifiedDrawOffset = Vector3.zero; // 打包后的绘制偏移量
public float deselectedSelectionBracketFactor = 1f; // 未选中时选择框缩放系数
// 选择与交互
public bool selectable; // 是否可被选择(大多数为true)
public bool containedPawnsSelectable; // 容器内生物是否可选(囚犯笼等)
public bool containedItemsSelectable; // 容器内物品是否可选
public bool neverMultiSelect; // 禁止多选(精密设备)
public bool isAutoAttackableMapObject; // 是否自动成为攻击目标(炮塔等)
public bool hasTooltip; // 是否显示工具提示
public List<Type> inspectorTabs; // 检视面板标签(库存/电力等)
[Unsaved(false)]
public List<InspectTabBase> inspectorTabsResolved; // 解析后的检视标签实例
public bool seeThroughFog; // 是否可在雾中显示(探照灯等)
public bool drawGUIOverlay; // 是否绘制GUI覆盖层(资源标记)
public bool drawGUIOverlayQuality = true; // 绘制质量覆盖层(家具质量)
public ResourceCountPriority resourceReadoutPriority; // 资源统计优先级(重要资源置顶)
public bool resourceReadoutAlwaysShow; // 始终显示在资源统计中(关键物资)
public bool drawPlaceWorkersWhileSelected; // 选中时显示放置预览(建筑规划)
public bool drawPlaceWorkersWhileInstallBlueprintSelected; // 安装蓝图时显示预览
public ConceptDef storedConceptLearnOpportunity; // 相关教学提示(首次接触时触发)
public float uiIconScale = 1f; // UI图标缩放比例
public bool hasCustomRectForSelector; // 是否有自定义选择框(异形建筑)
public bool hideStats; // 隐藏属性面板(装饰物品)
public bool hideInspect; // 隐藏检视按钮(不可交互物品)
public bool onlyShowInspectString; // 仅显示简略检视信息(岩石等)
public bool hideMainDesc; // 隐藏主要描述(基础物品)
public bool alwaysHaulable; // 是否始终可搬运(忽略区域设置)
public bool designateHaulable; // 是否显示"标记可搬运"选项
// 分类系统
public List<ThingCategoryDef> thingCategories; // 所属物品分类(金属/建材等)
public bool mineable; // 是否可开采(岩石/矿脉)
public bool socialPropernessMatters; // 社交礼仪是否重要(厕所/卧室)
public bool stealable = true; // 是否可被偷窃(派系关系影响)
// 音效系统
public SoundDef soundSpawned; // 生成时音效(建筑完成)
public SoundDef soundDrop; // 掉落音效(金属声/木料声)
public SoundDef soundPickup; // 拾取音效
public SoundDef soundInteract; // 交互音效(开关门)
public SoundDef soundImpactDefault; // 默认碰撞音效
public SoundDef soundPlayInstrument; // 演奏乐器音效
public SoundDef soundOpen; // 开启音效(容器/门)
// 存储与存档
public bool saveCompressible; // 是否可压缩存储(减少存档体积)
public bool isSaveable = true; // 是否可保存到存档(临时物品设为false)
// 建筑特性
public bool holdsRoof; // 是否支撑屋顶(柱子/墙壁)
public float fillPercent; // 填充百分比(墙壁=1,栅栏=0.5)
public bool coversFloor; // 是否覆盖地板(地毯等)
public bool neverOverlapFloors; // 禁止与地板重叠(家具等)
public SurfaceType surfaceType; // 表面类型(石质/木质等)
public bool wipesPlants; // 放置时清除植物(地基)
public bool blockPlants; // 阻止植物生长(屋顶下)
public bool blockLight; // 阻挡光线(墙壁)
public bool blockWind; // 阻挡风力(风力发电影响)
public bool blockWeather; // 阻挡天气(室内效果)
// 交易系统
public Tradeability tradeability = Tradeability.All; // 交易能力(可买/可卖/两者)
[NoTranslate]
public List<string> tradeTags; // 交易标签(武器/艺术品等)
public bool tradeNeverStack; // 交易时不可堆叠(活体生物)
public bool tradeNeverGenerateStacked; // 交易不生成堆叠(贵重物品)
public bool healthAffectsPrice = true; // 耐久度影响价格(损坏降价)
public ColorGenerator colorGeneratorInTraderStock; // 商人库存中的颜色变化(随机材质)
// 战斗系统
private List<VerbProperties> verbs; // 可使用的动词(攻击方式)
public List<Tool> tools; // 工具属性(采矿效率等)
public float equippedAngleOffset; // 装备时旋转角度偏移(武器持握方向)
public float equippedDistanceOffset; // 装备位置偏移(背在背上/挂在腰间)
public EquipmentType equipmentType; // 装备类型(主武器/副武器/护甲)
public TechLevel techLevel; // 科技等级(对应制作要求)
public List<WeaponClassDef> weaponClasses; // 武器分类(步枪/近战/能量等)
[NoTranslate]
public List<string> weaponTags; // 武器标签(狙击/连发等)
[NoTranslate]
public List<string> techHediffsTags; // 科技植入物标签(神经/机械等)
public bool violentTechHediff; // 是否为攻击性植入物(武器系统)
public bool destroyOnDrop; // 丢弃时销毁(任务物品)
public List<StatModifier> equippedStatOffsets; // 装备时的属性修正(移动-0.1等)
public SoundDef meleeHitSound; // 近战命中音效
public float recoilPower = 1f; // 后坐力强度(影响射击精度)
public float recoilRelaxation = 10f; // 后坐力恢复速度
public bool rotateInShelves = true; // 在架子上旋转显示(武器陈列)
public bool mergeVerbGizmos = true; // 合并动作按钮(攻击方式选择)
// 特殊功能
public BuildableDef entityDefToBuild; // 关联的可建造定义(蓝图物品)
public ThingDef projectileWhenLoaded; // 装填的弹药类型(弩箭/炮弹)
public RulePackDef ideoBuildingNamerBase; // 意识形态建筑命名规则
public EntityCodexEntryDef entityCodexEntry; // 关联的百科条目
// 子系统专用属性
public IngestibleProperties ingestible; // 可食用属性(食物/药物)
public FilthProperties filth; // 污物属性(血迹/呕吐物)
public GasProperties gas; // 气体属性(毒气/烟雾)
public BuildingProperties building; // 建筑属性(耐久/电力等)
public RaceProperties race; // 种族属性(生物特性)
public ApparelProperties apparel; // 服装属性(护甲/保暖)
public MoteProperties mote; // 粒子效果属性(灰尘/火花)
public PlantProperties plant; // 植物属性(生长周期等)
public ProjectileProperties projectile; // 投射物属性(弹道速度等)
public StuffProperties stuffProps; // 材质属性(影响制作物品属性)
public SkyfallerProperties skyfaller; // 空投属性(坠落速度等)
public PawnFlyerProperties pawnFlyer; // 飞行单位属性(降落机制)
public RitualFocusProperties ritualFocus; // 仪式焦点属性(祭祀用品)
public IngredientProperties ingredient; // 原料属性(配方需求)
public bool canBeUsedUnderRoof = true; // 是否可在屋顶下使用(某些设备需露天)