Пример #1
0
        public override IWorkshopTree Get(ActionSet actionSet, IWorkshopTree[] parameterValues, object[] additionalParameterData)
        {
            Model             text      = (Model)additionalParameterData[0];
            Element           visibleTo = (Element)parameterValues[1];
            Element           location  = (Element)parameterValues[2];
            Element           rotation  = (Element)parameterValues[3];
            Element           scale     = (Element)parameterValues[4];
            ElementEnumMember effectRev = (ElementEnumMember)parameterValues[5];
            bool getIds = (bool)additionalParameterData[6];

            return(RenderModel(actionSet, text, visibleTo, location, rotation, scale, effectRev, getIds));
        }
Пример #2
0
        public override IWorkshopTree Get(ActionSet actionSet, IWorkshopTree[] parameterValues, object[] additionalParameterData)
        {
            string            text      = (string)additionalParameterData[0];
            Element           visibleTo = (Element)parameterValues[1];
            Element           location  = (Element)parameterValues[2];
            Element           rotation  = (Element)parameterValues[3];
            Element           scale     = (Element)parameterValues[4];
            ElementEnumMember effectRev = (ElementEnumMember)parameterValues[5];
            bool getIds = (bool)additionalParameterData[6];

            return(RenderText(actionSet, text, GetFontFamily(null, null, "BigNoodleTooOblique"), 9, visibleTo, location, rotation, scale, effectRev, getIds, 0));
        }
 public EnumValuePair(ElementEnumMember member, bool constant, ValueGroupType type) : base(member.CodeName(), type, constant ? CompletionItemKind.Constant : CompletionItemKind.EnumMember)
 {
     Member     = member;
     _type      = type;
     Attributes = new VariableInstanceAttributes()
     {
         CanBeSet = false,
         UseDefaultVariableAssigner = false,
         CanBeIndexed = false,
         StoreType    = StoreType.None
     };
     // todo: token type
     // TokenType = Deltin.Deltinteger.Parse.SemanticTokenType.EnumMember;
 }
        public override void Decompile()
        {
            if (Rule.EventInfo.Event != RuleEvent.Subroutine)
            {
                if (Rule.Disabled)
                {
                    Decompiler.Append("disabled ");
                }
                Decompiler.Append("rule: \"" + Rule.Name + "\"");

                if (Rule.EventInfo.Event != RuleEvent.OngoingGlobal)
                {
                    Decompiler.NewLine();
                    Decompiler.Append("Event." + ElementEnumMember.Event(Rule.EventInfo.Event).CodeName());
                    // Write the event.
                    if (Rule.EventInfo.Team != Team.All)
                    {
                        Decompiler.NewLine();
                        Decompiler.Append("Team." + ElementEnumMember.Team(Rule.EventInfo.Team).CodeName());
                    }
                    // Write the player.
                    if (Rule.EventInfo.Player != PlayerSelector.All)
                    {
                        Decompiler.NewLine();
                        Decompiler.Append("Player." + ElementEnumMember.Player(Rule.EventInfo.Player).CodeName());
                    }
                }

                // Decompile conditions
                foreach (var condition in Rule.Conditions)
                {
                    condition.Decompile(this);
                }
            }
            else
            {
                Decompiler.Append("void " + Rule.EventInfo.SubroutineName + "() \"" + Rule.Name + "\"");
            }

            Decompiler.AddBlock();

            DecompileActions();

            Decompiler.Outdent();
            Decompiler.Append("}");
            Decompiler.NewLine();
            Decompiler.NewLine();
        }
Пример #5
0
        // Enumerator Values
        bool EnumeratorValue(out ITTEExpression expr)
        {
            if (Match(Kw("All Teams")))
            {
                expr = new ConstantEnumeratorExpression(ElementEnumMember.Team(Team.All));
                return(true);
            }
            if (Match(Kw("Team 1")))
            {
                expr = new ConstantEnumeratorExpression(ElementEnumMember.Team(Team.Team1));
                return(true);
            }
            if (Match(Kw("Team 2")))
            {
                expr = new ConstantEnumeratorExpression(ElementEnumMember.Team(Team.Team2));
                return(true);
            }
            // TODO: Gamemode, map, button, etc

            expr = null;
            return(false);
        }