public BasicRenderInformation GetTargetText(BoardInstanceXml instance, BoardTextDescriptorGeneralXml textDescriptor, DynamicSpriteFont targetFont, ushort refId, int secRefId, int tercRefId, out IEnumerable <BasicRenderInformation> multipleOutput) { string targetStr = m_originalCommand; switch (instance) { case OnNetInstanceCacheContainerXml cc: targetStr = GetTargetTextForNet(cc, refId, textDescriptor, out multipleOutput); break; case BoardInstanceBuildingXml bd: targetStr = GetTargetTextForBuilding(bd, refId, textDescriptor, out multipleOutput); break; default: multipleOutput = null; break; } return(multipleOutput is null?targetFont.DrawString(WriteTheSignsMod.Controller, targetStr, default, FontServer.instance.ScaleEffective) : null); }
public string GetTargetTextForNet(OnNetInstanceCacheContainerXml propDescriptor, ushort segmentId, BoardTextDescriptorGeneralXml textDescriptor, out IEnumerable <BasicRenderInformation> multipleOutput) { multipleOutput = null; switch (type) { case VariableType.SegmentTarget: var targId = propDescriptor?.GetTargetSegment(index) ?? 0; return(targId == 0 || !(subtype is VariableSegmentTargetSubType targetSubtype) || targetSubtype == VariableSegmentTargetSubType.None ? $"{prefix}{subtype}@targ{index}{suffix}" : $"{prefix}{targetSubtype.GetFormattedString(propDescriptor, targId, this) ?? m_originalCommand}{suffix}"); case VariableType.CurrentSegment: return(segmentId == 0 || !(subtype is VariableSegmentTargetSubType targetSubtype2) || targetSubtype2 == VariableSegmentTargetSubType.None ? $"{prefix}{subtype}@currSeg" : $"{prefix}{targetSubtype2.GetFormattedString(propDescriptor, segmentId, this) ?? m_originalCommand}{suffix}"); case VariableType.CityData: if ((subtype is VariableCitySubType targetCitySubtype)) { return($"{prefix}{targetCitySubtype.GetFormattedString(this) ?? m_originalCommand}{suffix}"); } break; } return(m_originalCommand); }
public string GetTargetTextForBuilding(BoardInstanceBuildingXml buildingDescriptor, ushort buildingId, BoardTextDescriptorGeneralXml textDescriptor, out IEnumerable <BasicRenderInformation> multipleOutput) { multipleOutput = null; switch (type) { case VariableType.CurrentBuilding: return(buildingId == 0 || !(subtype is VariableBuildingSubType targetSubtype2) || targetSubtype2 == VariableBuildingSubType.None ? $"{prefix}{subtype}@currBuilding" : $"{prefix}{targetSubtype2.GetFormattedString(buildingDescriptor.m_platforms, buildingId, this) ?? m_originalCommand}{suffix}"); case VariableType.CityData: if ((subtype is VariableCitySubType targetCitySubtype)) { return($"{prefix}{targetCitySubtype.GetFormattedString(this) ?? m_originalCommand}{suffix}"); } break; } return(m_originalCommand); }