Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }