System.Collections.Generic.List.RemoveAt(int)

Here are the examples of the csharp api System.Collections.Generic.List.RemoveAt(int) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

7926 Examples 7

19 View Source File : DataUnparsed.cs
License : MIT License
Project Creator : 0x0ade

public override void Set<T>(DataContext ctx, [AllowNull] T value) {
            string id = ctx.MetaTypeToID[typeof(T)];
            if (value == null) {
                for (int i = 0; i < InnerMeta.Count; i++)
                    if (InnerMeta[i].ID == id) {
                        InnerMeta.RemoveAt(i);
                        InnerMetaStatus++;
                        return;
                    }
                return;
            }

            foreach (MetaTypeWrap meta in InnerMeta)
                if (meta.ID == id) {
                    meta.Wrap(ctx, value);
                    return;
                }

            MetaTypeWrap wrap = new();
            wrap.Wrap(ctx, value);
            InnerMeta.Add(wrap);
            InnerMetaStatus++;
        }

19 View Source File : GhostEmote.cs
License : MIT License
Project Creator : 0x0ade

public static MTexture GetIcon(string emote, float time) {
            Atlas atlas;
            if ((atlas = GetIconAtlas(ref emote)) == null)
                return null;

            List<string> iconPaths = new(emote.Split(' '));
            if (iconPaths.Count > 1 && int.TryParse(iconPaths[0], out int fps)) {
                iconPaths.RemoveAt(0);
            } else {
                fps = 7; // Default FPS.
            }

            List<MTexture> icons = iconPaths.SelectMany(iconPath => {
                iconPath = iconPath.Trim();
                List<MTexture> subs = atlas.orig_GetAtlreplacedubtextures(iconPath);
                if (subs.Count != 0)
                    return subs;
                if (atlas.Has(iconPath))
                    return new List<MTexture>() { atlas[iconPath] };
                if (iconPath.ToLowerInvariant() == "end")
                    return new List<MTexture>() { null };
                return new List<MTexture>();
            }).ToList();

            if (icons.Count == 0)
                return null;

            if (icons.Count == 1)
                return icons[0];

            int index = (int) Math.Floor(time * fps);

            if (index >= icons.Count - 1 && icons[icons.Count - 1] == null)
                return icons[icons.Count - 2];

            return icons[index % icons.Count];
        }

19 View Source File : CelesteNetConnection.cs
License : MIT License
Project Creator : 0x0ade

protected virtual void ThreadLoop() {
            try {
                while (Con.IsAlive) {
                    DedupeTimestamp++;

                    int waited = 0;
                    if (Interlocked.CompareExchange(ref QueueCount, 0, 0) == 0)
                        waited = WaitHandle.WaitAny(EventHandles, 1000);

                    if ((waited == WaitHandle.WaitTimeout || DedupeTimestamp % 10 == 0) && LastSent.Count > 0) {
                        for (int i = Dedupes.Count - 1; i >= 0; --i) {
                            DataDedupe slot = Dedupes[i];
                            if (!slot.Update(DedupeTimestamp)) {
                                Dedupes.RemoveAt(i);
                                if (LastSent.TryGetValue(slot.Type, out Dictionary<uint, DataDedupe>? slotByID)) {
                                    slotByID.Remove(slot.ID);
                                    if (slotByID.Count == 0) {
                                        LastSent.Remove(slot.Type);
                                    }
                                }
                            }
                        }
                    }

                    if (!Con.IsAlive)
                        return;

                    DateTime now = DateTime.UtcNow;

                    while (Interlocked.CompareExchange(ref QueueCount, 0, 0) != 0) {
                        DataType? data;
                        lock (QueueLock) {
                            int next = QueueSendNext;
                            data = Queue[next];
                            Queue[next] = null;
                            QueueSendNext = (next + 1) % Queue.Length;
                            Interlocked.Decrement(ref QueueCount);
                        }

                        if (data == null)
                            continue;

                        if (data is DataInternalDisconnect) {
                            Con.Dispose();
                            return;
                        }

                        if ((data.DataFlags & DataFlags.OnlyLatest) == DataFlags.OnlyLatest) {
                            string type = data.GetTypeID(Con.Data);
                            uint id = data.GetDuplicateFilterID();

                            lock (QueueLock) {
                                int next = QueueSendNext;
                                int count = Interlocked.CompareExchange(ref QueueCount, 0, 0);
                                int length = Queue.Length;
                                for (int ii = 0; ii < count; ii++) {
                                    int i = (next + ii) % length;
                                    DataType? d = Queue[i];
                                    if (d != null && d.GetTypeID(Con.Data) == type && d.GetDuplicateFilterID() == id) {
                                        data = d;
                                        Queue[i] = null;
                                    }
                                }
                            }
                        }

                        if ((data.DataFlags & DataFlags.SkipDuplicate) == DataFlags.SkipDuplicate) {
                            string type = data.GetTypeID(Con.Data);
                            uint id = data.GetDuplicateFilterID();

                            if (!LastSent.TryGetValue(type, out Dictionary<uint, DataDedupe>? slotByID))
                                LastSent[type] = slotByID = new();

                            if (slotByID.TryGetValue(id, out DataDedupe? slot)) {
                                if (slot.Data.ConsideredDuplicate(data))
                                    continue;
                                slot.Data = data;
                                slot.Timestamp = DedupeTimestamp;
                                slot.Iterations = 0;
                            } else {
                                Dedupes.Add(slotByID[id] = new(type, id, data, DedupeTimestamp));
                            }

                        }

                        Con.SendRaw(this, data);

                        if ((data.DataFlags & DataFlags.Update) == DataFlags.Update)
                            LastUpdate = now;
                        else
                            LastNonUpdate = now;
                    }

                    if (Con.SendStringMap) {
                        List<Tuple<string, int>> added = Strings.PromoteRead();
                        if (added.Count > 0) {
                            foreach (Tuple<string, int> mapping in added)
                                Con.SendRaw(this, new DataLowLevelStringMapping {
                                    IsUpdate = SendStringMapUpdate,
                                    StringMap = Strings.Name,
                                    Value = mapping.Item1,
                                    ID = mapping.Item2
                                });
                            if (SendStringMapUpdate)
                                LastUpdate = now;
                            else
                                LastNonUpdate = now;
                        }
                    }

                    if (Con.SendKeepAlive) {
                        if (SendKeepAliveUpdate && (now - LastUpdate).TotalSeconds >= 1D) {
                            Con.SendRaw(this, new DataLowLevelKeepAlive {
                                IsUpdate = true
                            });
                            LastUpdate = now;
                        }
                        if (SendKeepAliveNonUpdate && (now - LastNonUpdate).TotalSeconds >= 1D) {
                            Con.SendRaw(this, new DataLowLevelKeepAlive {
                                IsUpdate = false
                            });
                            LastNonUpdate = now;
                        }
                    }

                    Con.SendRawFlush();

                    lock (QueueLock)
                        if (Interlocked.CompareExchange(ref QueueCount, 0, 0) == 0)
                            Event.Reset();
                }

            } catch (ThreadInterruptedException) {

            } catch (ThreadAbortException) {

            } catch (Exception e) {
                if (!(e is IOException) && !(e is ObjectDisposedException))
                    Logger.Log(LogLevel.CRI, "conqueue", $"Failed sending data:\n{e}");

                Con.Dispose();

            } finally {
                Event.Dispose();
            }
        }

19 View Source File : PInvokeHooks.cs
License : zlib License
Project Creator : 0x0ade

public static bool UnhookWindowsHookEx(IntPtr hhk) {
            int index = (int) hhk - 1;
            if (index < 0 || PInvoke.Hooks.Count <= index ||
                PInvoke.AllHooks[index] == null)
                return true; // Too lazy to implement Set/GetLastError with Windows' 16000 error codes...

            Tuple<HookType, Delegate, int> hook = PInvoke.AllHooks[index];
            PInvoke.AllHooks[index] = null;
            PInvoke.Hooks[hook.Item1].RemoveAt(hook.Item3);
            return true;
        }

19 View Source File : DInput.cs
License : zlib License
Project Creator : 0x0ade

public static void Update() {
            for (int player = 0; player < States.Length; player++) {
                GamePadState stateX = GamePad.GetState((PlayerIndex) player);
                DInputState stateD = States[player];
                stateD.connected = stateX.IsConnected;
                if (!stateD.connected)
                    continue;
                // TODO: Finalize DInput mappings

                GamePadThumbSticks sticks = stateX.ThumbSticks;
                stateD.leftX = sticks.Left.X;
                stateD.leftY = sticks.Left.Y;
                stateD.leftZ = 0f; // ???
                stateD.rightX = sticks.Right.X;
                stateD.rightY = sticks.Right.Y;
                stateD.rightZ = 0f; // ???

                GamePadTriggers triggers = stateX.Triggers;
                stateD.slider1 = stateX.Triggers.Left;
                stateD.slider2 = stateX.Triggers.Right;

                GamePadDPad dpad = stateX.DPad;
                stateD.left = dpad.Left == ButtonState.Pressed;
                stateD.right = dpad.Right == ButtonState.Pressed;
                stateD.up = dpad.Up == ButtonState.Pressed;
                stateD.down = dpad.Down == ButtonState.Pressed;

                GamePadButtons buttonsX = stateX.Buttons;
                List<bool> buttonsD = stateD.buttons ?? new List<bool>();
                for (int i = buttonsD.Count; i < 13; i++)
                    buttonsD.Add(false);
                while (buttonsD.Count > 13)
                    buttonsD.RemoveAt(0);

                buttonsD[0] = buttonsX.X == ButtonState.Pressed;
                buttonsD[1] = buttonsX.A == ButtonState.Pressed;
                buttonsD[2] = buttonsX.B == ButtonState.Pressed;
                buttonsD[3] = buttonsX.Y == ButtonState.Pressed;
                buttonsD[4] = buttonsX.LeftShoulder == ButtonState.Pressed;
                buttonsD[5] = buttonsX.RightShoulder == ButtonState.Pressed;
                buttonsD[6] = triggers.Left >= 0.999f;
                buttonsD[7] = triggers.Right >= 0.999f;
                buttonsD[8] = buttonsX.Back == ButtonState.Pressed;
                buttonsD[9] = buttonsX.Start == ButtonState.Pressed;
                buttonsD[10] = buttonsX.BigButton == ButtonState.Pressed; // ???
                buttonsD[11] = buttonsX.LeftStick == ButtonState.Pressed;
                buttonsD[12] = buttonsX.RightStick == ButtonState.Pressed;

                stateD.buttons = buttonsD;
            }
        }

19 View Source File : ConversationStatusEditor.cs
License : MIT License
Project Creator : 0xbustos

private static void DisplayNameAndRemoveButton( int i )
        {
            statusFoldoutDisplay = i;
            GUILayout.BeginHorizontal();
            status[i].Name = EditorGUILayout.TextField( "Status Name", status[i].Name );
            if (GUILayout.Button( EditorButtons.RemoveStatusButton, EditorStyles.miniButton, EditorButtons.MiniButtonWidth ))
            {
                status.RemoveAt( i );
                statusFoldoutDisplay = -1;
                return;
            }

            GUILayout.EndHorizontal();
        }

19 View Source File : DialogueEditor.cs
License : MIT License
Project Creator : 0xbustos

public static void Display( Dialogue dialogue )
        {
            if (dialogue.Sentences == null)
            {
                dialogue.Sentences = new List<Sentence>();
            }

            List<Sentence> sentences = dialogue.Sentences;
            EditorGUILayout.LabelField( "Dialogue List", EditorStyles.boldLabel );
            EditorGUI.indentLevel++;
            for (int i = 0; i < sentences.Count; i++)
            {
                GUILayout.BeginHorizontal();
                bool display = i == dialogueFoldoutDisplay;
                display = EditorGUILayout.Foldout( display, "Dialogue" + ( i + 1 ) );
                if (GUILayout.Button( EditorButtons.RemoveDialogueButton, EditorStyles.miniButton, EditorButtons.MiniButtonWidth ))
                {
                    sentences.RemoveAt( i );
                    dialogueFoldoutDisplay = -1;
                    break;
                }

                GUILayout.EndHorizontal();
                if (!display && i == dialogueFoldoutDisplay)
                {
                    dialogueFoldoutDisplay = -1;
                }

                if (display)
                {
                    dialogueFoldoutDisplay = i;
                    EditorGUI.indentLevel++;
                    SentenceEditor.Display( sentences[i] );
                    EditorGUI.indentLevel--;
                }
            }

            if (GUILayout.Button( EditorButtons.AddDialogueButton, EditorStyles.miniButton, EditorButtons.NormalButtonWidth ))
            {
                Sentence newSentence = new Sentence();
                sentences.Add( newSentence );
            }

            EditorGUI.indentLevel--;
        }

19 View Source File : ExpressionEditor.cs
License : MIT License
Project Creator : 0xbustos

public static void Display(List<Expression> expressions)
        {
            for (int i = 0; i < expressions.Count; i++)
            {
                bool display = i == expressionFoldoutDisplay;
                display = EditorGUILayout.Foldout( display, expressions[i].Name );
                if (!display && i == expressionFoldoutDisplay)
                {
                    expressionFoldoutDisplay = -1;
                }

                if (display)
                {
                    expressionFoldoutDisplay = i;
                    EditorGUILayout.BeginVertical( GUI.skin.box );
                    GUILayout.BeginHorizontal();
                    expressions[i].Name = EditorGUILayout.TextField( "Expression Name", expressions[i].Name );
                    if (GUILayout.Button( EditorButtons.RemoveExpressionButton, EditorStyles.miniButton, EditorButtons.MiniButtonWidth ))
                    {
                        expressions.RemoveAt( i );
                        expressionFoldoutDisplay = -1;
                        return;
                    }

                    GUILayout.EndHorizontal();
                    expressions[i].Image = EditorGUILayout.ObjectField( "Image", expressions[i].Image, typeof( Sprite ), true ) as Sprite;

                    EditorGUILayout.EndVertical();
                }
            }
        }

19 View Source File : NewConversationsEditor.cs
License : MIT License
Project Creator : 0xbustos

public static void Display( List<PendingStatus> conversations )
        {
            if (conversations == null)
            {
                conversations = new List<PendingStatus>();
            }

            EditorGUILayout.LabelField( "New Conversations", EditorStyles.boldLabel );

            for (int i = 0; i < conversations.Count; i++)
            {
                EditorGUI.indentLevel++;
                GUILayout.BeginHorizontal();
                bool display = i == newConversationsFoldoutDisplay;
                display = EditorGUILayout.Foldout( display, conversations[i].ConversationName );
                if (GUILayout.Button( EditorButtons.RemovePendingStatusButton, EditorStyles.miniButton, EditorButtons.MiniButtonWidth ))
                {
                    conversations.RemoveAt( i );
                    newConversationsFoldoutDisplay = -1;
                    break;
                }

                GUILayout.EndHorizontal();
                if (!display && i == newConversationsFoldoutDisplay)
                {
                    newConversationsFoldoutDisplay = -1;
                }

                if (display)
                {
                    newConversationsFoldoutDisplay = i;
                    EditorGUI.indentLevel++;
                    conversations[i].ConversationName = EditorGUILayout.TextField( "Conversation", conversations[i].ConversationName );
                    conversations[i].StatusName = EditorGUILayout.TextField( "Status", conversations[i].StatusName );
                    conversations[i].Importance = EditorGUILayout.IntField( "Importance", conversations[i].Importance );
                    EditorGUI.indentLevel--;
                }

                EditorGUI.indentLevel--;
            }

            if (GUILayout.Button( EditorButtons.AddPendingStatusButton, EditorStyles.miniButton, EditorButtons.NormalButtonWidth ))
            {
                PendingStatus pendingStatus = new PendingStatus();
                conversations.Add( pendingStatus );
            }
        }

19 View Source File : CompressedAV1ImageCollection.cs
License : MIT License
Project Creator : 0xC0000054

public void RemoveAt(int index)
        {
            if ((uint)index >= (uint)this.items.Count)
            {
                ExceptionUtil.ThrowArgumentOutOfRangeException(nameof(index));
            }

            this.items[index]?.Dispose();
            this.items.RemoveAt(index);
            this.version++;
        }

19 View Source File : TextureCollection.cs
License : MIT License
Project Creator : 0xC0000054

public void RemoveAt(int index)
        {
            DisposePreviousItem(index);

            this.items.RemoveAt(index);
        }

19 View Source File : ProxyGenerator.cs
License : MIT License
Project Creator : 1100100

private static MemberDeclarationSyntax GenerateMethod(string routePrefix, MethodInfo methodInfo, string serviceName)
        {
            if (methodInfo.ReturnType.Namespace != typeof(Task).Namespace)
                throw new NotSupportedException($"Only support proxy asynchronous methods.[{methodInfo.DeclaringType?.Namespace}.{methodInfo.DeclaringType?.Name}.{methodInfo.Name}]");

            var methodAttr = methodInfo.GetCustomAttribute<ServiceRouteAttribute>();
            var serviceRoute = $"{routePrefix}/{(methodAttr == null ? methodInfo.Name : methodAttr.Route)}";
            var returnDeclaration = GenerateType(methodInfo.ReturnType);

            var argDeclarations = new List<SyntaxNodeOrToken>();
            foreach (var arg in methodInfo.GetParameters())
            {
                argDeclarations.Add(arg.ParameterType.IsGenericType
                    ? SyntaxFactory.Parameter(SyntaxFactory.Identifier(arg.Name))
                        .WithType(GenerateType(arg.ParameterType))
                    : SyntaxFactory.Parameter(SyntaxFactory.Identifier(arg.Name))
                        .WithType(GenerateQualifiedNameSyntax(arg.ParameterType)));

                argDeclarations.Add(SyntaxFactory.Token(SyntaxKind.CommaToken));
            }

            if (argDeclarations.Any())
            {
                argDeclarations.RemoveAt(argDeclarations.Count - 1);
            }

            //Generate return type.
            var methodDeclaration = SyntaxFactory.MethodDeclaration(methodInfo.ReturnType == typeof(void) ? SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.VoidKeyword)) : returnDeclaration, SyntaxFactory.Identifier(methodInfo.Name));

            if (methodInfo.ReturnType.Namespace == typeof(Task).Namespace)
            {
                methodDeclaration = methodDeclaration.WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword),
                    SyntaxFactory.Token(SyntaxKind.AsyncKeyword)));
            }
            else
            {
                methodDeclaration = methodDeclaration.WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword)));
            }

            methodDeclaration = methodDeclaration.WithParameterList(
                SyntaxFactory.ParameterList(SyntaxFactory.SeparatedList<ParameterSyntax>(argDeclarations)));


            ExpressionSyntax expressionSyntax;

            if (methodInfo.ReturnType == typeof(Task))
            {
                expressionSyntax = SyntaxFactory.IdentifierName("InvokeAsync");
            }
            else
            {
                expressionSyntax = SyntaxFactory.GenericName(SyntaxFactory.Identifier("InvokeAsync"))
                    .WithTypeArgumentList(((GenericNameSyntax)returnDeclaration).TypeArgumentList);
            }

            var argNames = methodInfo.GetParameters().Select(p => SyntaxFactory.IdentifierName(SyntaxFactory.Identifier(p.Name))).ToList();
            var token = new SyntaxNodeOrToken[]
            {
                SyntaxFactory.Argument(SyntaxFactory
                    .ArrayCreationExpression(SyntaxFactory
                        .ArrayType(SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.ObjectKeyword)))
                        .WithRankSpecifiers(SyntaxFactory.SingletonList(
                            SyntaxFactory.ArrayRankSpecifier(
                                SyntaxFactory.SingletonSeparatedList<ExpressionSyntax>(
                                    SyntaxFactory.OmittedArraySizeExpression())))))
                    .WithInitializer(SyntaxFactory.InitializerExpression(SyntaxKind.CollectionInitializerExpression,
                        SyntaxFactory.SeparatedList<ExpressionSyntax>(argNames)))),

                SyntaxFactory.Token(SyntaxKind.CommaToken),
                SyntaxFactory.Argument(
                    SyntaxFactory.LiteralExpression(
                        SyntaxKind.StringLiteralExpression,
                        SyntaxFactory.Literal(serviceRoute))),
                SyntaxFactory.Token(SyntaxKind.CommaToken),
                SyntaxFactory.Argument(
                    SyntaxFactory.LiteralExpression(
                        SyntaxKind.StringLiteralExpression,
                        SyntaxFactory.Literal(serviceName)))
            };

            expressionSyntax = SyntaxFactory.AwaitExpression(SyntaxFactory.InvocationExpression(expressionSyntax)
                .WithArgumentList(
                    SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList<ArgumentSyntax>(token))
                ));

            StatementSyntax statementSyntax;
            if (methodInfo.ReturnType != typeof(Task) && methodInfo.ReturnType != typeof(void))
            {
                statementSyntax = SyntaxFactory.ReturnStatement(expressionSyntax);
            }
            else
            {
                statementSyntax = SyntaxFactory.ExpressionStatement(expressionSyntax);
            }

            return methodDeclaration.WithBody(SyntaxFactory.Block(SyntaxFactory.SingletonList(statementSyntax)));
        }

19 View Source File : CollectionAbstract.cs
License : MIT License
Project Creator : 17MKH

public void RemoveAt(int index)
    {
        Collection.RemoveAt(index);
    }

19 View Source File : Player.cs
License : MIT License
Project Creator : 1ZouLTReX1

public void MergeWithBuffer()
    {
        lock (userCommandBufferList)
        {
            // TODO work out why some User Commands are null 
            // it works for now tho
            for (int i = userCommandBufferList.Count - 1; i >= 0; i--)
            {
                if (userCommandBufferList[i] == null)
                {
                    userCommandBufferList.RemoveAt(i);
                }
                else
                {
                    jitter.Update(userCommandBufferList[i].serverRecTime - lastRecTime);
                    lastRecTime = userCommandBufferList[i].serverRecTime;
                }
            }

            userCommandList.AddRange(userCommandBufferList);
            userCommandBufferList.Clear();
        }
            
        userCommandList.Sort((a, b) => a.serverRecTime.CompareTo(b.serverRecTime));

        // DEBUG Jitter
        //Debug.Log(jitter.stdDeviation + ", " + jitter.average);
    }

19 View Source File : Server.cs
License : MIT License
Project Creator : 1ZouLTReX1

public ushort GetPlayerId()
    {
        var newID = playerIdList[0];
        playerIdList.RemoveAt(0);
        return newID;
    }

19 View Source File : DefaultConfig.cs
License : Apache License 2.0
Project Creator : 214175590

public static void RemoveShellLisreplacedem(List<string> shellList, int index)
        {
            if (index < shellList.Count)
            {
                shellList.RemoveAt(index);
            }
            AppConfig.Instance.SaveConfig(2);
        }

19 View Source File : CommandPacket.cs
License : MIT License
Project Creator : 2881099

public CommandPacket Command(string cmd, string subcmd = null)
        {
            if (!string.IsNullOrWhiteSpace(_command) && _command.Equals(_input.FirstOrDefault())) _input.RemoveAt(0);
            if (!string.IsNullOrWhiteSpace(_subcommand) && _subcommand.Equals(_input.FirstOrDefault())) _input.RemoveAt(0);

            _command = cmd;
            _subcommand = subcmd;

            if (!string.IsNullOrWhiteSpace(_command))
            {
                if (!string.IsNullOrWhiteSpace(_subcommand)) _input.Insert(0, _subcommand);
                _input.Insert(0, _command);
            }
            return this;
        }

19 View Source File : DbContextSync.cs
License : MIT License
Project Creator : 2881099

internal void ExecCommand() {
			if (isExecCommanding) return;
			if (_actions.Any() == false) return;
			isExecCommanding = true;

			ExecCommandInfo oldinfo = null;
			var states = new List<object>();

			Func<string, int> dbContextBetch = methodName => {
				if (_dicExecCommandDbContextBetch.TryGetValue(oldinfo.stateType, out var trydic) == false)
					trydic = new Dictionary<string, Func<object, object[], int>>();
				if (trydic.TryGetValue(methodName, out var tryfunc) == false) {
					var arrType = oldinfo.stateType.MakeArrayType();
					var dbsetType = oldinfo.dbSet.GetType().BaseType;
					var dbsetTypeMethod = dbsetType.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { arrType }, null);

					var returnTarget = Expression.Label(typeof(int));
					var parm1DbSet = Expression.Parameter(typeof(object));
					var parm2Vals = Expression.Parameter(typeof(object[]));
					var var1Vals = Expression.Variable(arrType);
					tryfunc = Expression.Lambda<Func<object, object[], int>>(Expression.Block(
						new[] { var1Vals },
						Expression.replacedign(var1Vals, Expression.Convert(global::FreeSql.Internal.Utils.GetDataReaderValueBlockExpression(arrType, parm2Vals), arrType)),
						Expression.Return(returnTarget, Expression.Call(Expression.Convert(parm1DbSet, dbsetType), dbsetTypeMethod, var1Vals)),
						Expression.Label(returnTarget, Expression.Default(typeof(int)))
					), new[] { parm1DbSet, parm2Vals }).Compile();
					trydic.Add(methodName, tryfunc);
				}
				return tryfunc(oldinfo.dbSet, states.ToArray());
			};
			Action funcDelete = () => {
				_affrows += dbContextBetch("DbContextBetchRemove");
				states.Clear();
			};
			Action funcInsert = () => {
				_affrows += dbContextBetch("DbContextBetchAdd");
				states.Clear();
			};
			Action<bool> funcUpdate = isLiveUpdate => {
				var affrows = 0;
				if (isLiveUpdate) affrows = dbContextBetch("DbContextBetchUpdateNow");
				else affrows = dbContextBetch("DbContextBetchUpdate");
				if (affrows == -999) { //最后一个元素已被删除
					states.RemoveAt(states.Count - 1);
					return;
				}
				if (affrows == -998 || affrows == -997) { //没有执行更新
					var laststate = states[states.Count - 1];
					states.Clear();
					if (affrows == -997) states.Add(laststate); //保留最后一个
				}
				if (affrows > 0) {
					_affrows += affrows;
					var islastNotUpdated = states.Count != affrows;
					var laststate = states[states.Count - 1];
					states.Clear();
					if (islastNotUpdated) states.Add(laststate); //保留最后一个
				}
			};

			while (_actions.Any() || states.Any()) {
				var info = _actions.Any() ? _actions.Dequeue() : null;
				if (oldinfo == null) oldinfo = info;
				var isLiveUpdate = false;

				if (_actions.Any() == false && states.Any() ||
					info != null && oldinfo.actionType != info.actionType ||
					info != null && oldinfo.stateType != info.stateType) {

					if (info != null && oldinfo.actionType == info.actionType && oldinfo.stateType == info.stateType) {
						//最后一个,合起来发送
						states.Add(info.state);
						info = null;
					}

					switch (oldinfo.actionType) {
						case ExecCommandInfoType.Insert:
							funcInsert();
							break;
						case ExecCommandInfoType.Delete:
							funcDelete();
							break;
					}
					isLiveUpdate = true;
				}

				if (isLiveUpdate || oldinfo.actionType == ExecCommandInfoType.Update) {
					if (states.Any())
						funcUpdate(isLiveUpdate);
				}

				if (info != null) {
					states.Add(info.state);
					oldinfo = info;
				}
			}
			isExecCommanding = false;
		}

19 View Source File : DbSetAsync.cs
License : MIT License
Project Creator : 2881099

async Task<int> DbContextBetchUpdatePrivAsync(EnreplacedyState[] ups, bool isLiveUpdate) {
			if (ups.Any() == false) return 0;
			var uplst1 = ups[ups.Length - 1];
			var uplst2 = ups.Length > 1 ? ups[ups.Length - 2] : null;

			if (_states.TryGetValue(uplst1.Key, out var lstval1) == false) return -999;
			var lstval2 = default(EnreplacedyState);
			if (uplst2 != null && _states.TryGetValue(uplst2.Key, out lstval2) == false) throw new Exception($"特别错误:更新失败,数据未被跟踪:{_fsql.GetEnreplacedyString(_enreplacedyType, uplst2.Value)}");

			var cuig1 = _fsql.CompareEnreplacedyValueReturnColumns(_enreplacedyType, uplst1.Value, lstval1.Value, true);
			var cuig2 = uplst2 != null ? _fsql.CompareEnreplacedyValueReturnColumns(_enreplacedyType, uplst2.Value, lstval2.Value, true) : null;

			List<EnreplacedyState> data = null;
			string[] cuig = null;
			if (uplst2 != null && string.Compare(string.Join(",", cuig1), string.Join(",", cuig2)) != 0) {
				//最后一个不保存
				data = ups.ToList();
				data.RemoveAt(ups.Length - 1);
				cuig = cuig2;
			} else if (isLiveUpdate) {
				//立即保存
				data = ups.ToList();
				cuig = cuig1;
			}

			if (data?.Count > 0) {

				if (cuig.Length == _table.Columns.Count)
					return ups.Length == data.Count ? -998 : -997;

				var updateSource = data.Select(a => a.Value).ToArray();
				var update = this.OrmUpdate(null).SetSource(updateSource).IgnoreColumns(cuig);

				var affrows = await update.ExecuteAffrowsAsync();

				foreach (var newval in data) {
					if (_states.TryGetValue(newval.Key, out var tryold))
						_fsql.MapEnreplacedyValue(_enreplacedyType, newval.Value, tryold.Value);
					if (newval.OldValue != null)
						_fsql.MapEnreplacedyValue(_enreplacedyType, newval.Value, newval.OldValue);
				}
				return affrows;
			}

			//等待下次对比再保存
			return 0;
		}

19 View Source File : DbContextAsync.cs
License : MIT License
Project Creator : 2881099

async internal Task ExecCommandAsync() {
			if (isExecCommanding) return;
			if (_actions.Any() == false) return;
			isExecCommanding = true;

			ExecCommandInfo oldinfo = null;
			var states = new List<object>();

			Func<string, Task<int>> dbContextBetch = methodName => {
				if (_dicExecCommandDbContextBetchAsync.TryGetValue(oldinfo.stateType, out var trydic) == false)
					trydic = new Dictionary<string, Func<object, object[], Task<int>>>();
				if (trydic.TryGetValue(methodName, out var tryfunc) == false) {
					var arrType = oldinfo.stateType.MakeArrayType();
					var dbsetType = oldinfo.dbSet.GetType().BaseType;
					var dbsetTypeMethod = dbsetType.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { arrType }, null);

					var returnTarget = Expression.Label(typeof(Task<int>));
					var parm1DbSet = Expression.Parameter(typeof(object));
					var parm2Vals = Expression.Parameter(typeof(object[]));
					var var1Vals = Expression.Variable(arrType);
					tryfunc = Expression.Lambda<Func<object, object[], Task<int>>>(Expression.Block(
						new[] { var1Vals },
						Expression.replacedign(var1Vals, Expression.Convert(global::FreeSql.Internal.Utils.GetDataReaderValueBlockExpression(arrType, parm2Vals), arrType)),
						Expression.Return(returnTarget, Expression.Call(Expression.Convert(parm1DbSet, dbsetType), dbsetTypeMethod, var1Vals)),
						Expression.Label(returnTarget, Expression.Default(typeof(Task<int>)))
					), new[] { parm1DbSet, parm2Vals }).Compile();
					trydic.Add(methodName, tryfunc);
				}
				return tryfunc(oldinfo.dbSet, states.ToArray());
			};
			Func<Task> funcDelete = async () => {
				_affrows += await dbContextBetch("DbContextBetchRemoveAsync");
				states.Clear();
			};
			Func<Task> funcInsert = async  () => {
				_affrows += await dbContextBetch("DbContextBetchAddAsync");
				states.Clear();
			};
			Func<bool, Task> funcUpdate = async (isLiveUpdate) => {
				var affrows = 0;
				if (isLiveUpdate) affrows = await dbContextBetch("DbContextBetchUpdateNowAsync");
				else affrows = await dbContextBetch("DbContextBetchUpdateAsync");
				if (affrows == -999) { //最后一个元素已被删除
					states.RemoveAt(states.Count - 1);
					return;
				}
				if (affrows == -998 || affrows == -997) { //没有执行更新
					var laststate = states[states.Count - 1];
					states.Clear();
					if (affrows == -997) states.Add(laststate); //保留最后一个
				}
				if (affrows > 0) {
					_affrows += affrows;
					var islastNotUpdated = states.Count != affrows;
					var laststate = states[states.Count - 1];
					states.Clear();
					if (islastNotUpdated) states.Add(laststate); //保留最后一个
				}
			};

			while (_actions.Any() || states.Any()) {
				var info = _actions.Any() ? _actions.Dequeue() : null;
				if (oldinfo == null) oldinfo = info;
				var isLiveUpdate = false;

				if (_actions.Any() == false && states.Any() ||
					info != null && oldinfo.actionType != info.actionType ||
					info != null && oldinfo.stateType != info.stateType) {

					if (info != null && oldinfo.actionType == info.actionType && oldinfo.stateType == info.stateType) {
						//最后一个,合起来发送
						states.Add(info.state);
						info = null;
					}

					switch (oldinfo.actionType) {
						case ExecCommandInfoType.Insert:
							await funcInsert();
							break;
						case ExecCommandInfoType.Delete:
							await funcDelete();
							break;
					}
					isLiveUpdate = true;
				}

				if (isLiveUpdate || oldinfo.actionType == ExecCommandInfoType.Update) {
					if (states.Any())
						await funcUpdate(isLiveUpdate);
				}

				if (info != null) {
					states.Add(info.state);
					oldinfo = info;
				}
			}
			isExecCommanding = false;
		}

19 View Source File : DbSetSync.cs
License : MIT License
Project Creator : 2881099

int DbContextBetchUpdatePriv(EnreplacedyState[] ups, bool isLiveUpdate) {
			if (ups.Any() == false) return 0;
			var uplst1 = ups[ups.Length - 1];
			var uplst2 = ups.Length > 1 ? ups[ups.Length - 2] : null;

			if (_states.TryGetValue(uplst1.Key, out var lstval1) == false) return -999;
			var lstval2 = default(EnreplacedyState);
			if (uplst2 != null && _states.TryGetValue(uplst2.Key, out lstval2) == false) throw new Exception($"特别错误:更新失败,数据未被跟踪:{_fsql.GetEnreplacedyString(_enreplacedyType, uplst2.Value)}");

			var cuig1 = _fsql.CompareEnreplacedyValueReturnColumns(_enreplacedyType, uplst1.Value, lstval1.Value, true);
			var cuig2 = uplst2 != null ? _fsql.CompareEnreplacedyValueReturnColumns(_enreplacedyType, uplst2.Value, lstval2.Value, true) : null;

			List<EnreplacedyState> data = null;
			string[] cuig = null;
			if (uplst2 != null && string.Compare(string.Join(",", cuig1), string.Join(",", cuig2)) != 0) {
				//最后一个不保存
				data = ups.ToList();
				data.RemoveAt(ups.Length - 1);
				cuig = cuig2;
			} else if (isLiveUpdate) {
				//立即保存
				data = ups.ToList();
				cuig = cuig1;
			}

			if (data?.Count > 0) {

				if (cuig.Length == _table.Columns.Count)
					return ups.Length == data.Count ? -998 : -997;

				var updateSource = data.Select(a => a.Value).ToArray();
				var update = this.OrmUpdate(null).SetSource(updateSource).IgnoreColumns(cuig);

				var affrows = update.ExecuteAffrows();

				foreach (var newval in data) {
					if (_states.TryGetValue(newval.Key, out var tryold))
						_fsql.MapEnreplacedyValue(_enreplacedyType, newval.Value, tryold.Value);
					if (newval.OldValue != null)
						_fsql.MapEnreplacedyValue(_enreplacedyType, newval.Value, newval.OldValue);
				}
				return affrows;
			}

			//等待下次对比再保存
			return 0;
		}

19 View Source File : LeapVRTemporalWarping.cs
License : MIT License
Project Creator : 39M

private void updateHistory(Vector3 currLocalPosition, Quaternion currLocalRotation) {
      long leapNow = provider.GetLeapController().Now();
      _history.Add(new TransformData() {
        leapTime = leapNow,
        localPosition = currLocalPosition,
        localRotation = currLocalRotation
      });

      // Reduce history length
      while (_history.Count > 0 &&
             MAX_LATENCY < leapNow - _history[0].leapTime) {
        _history.RemoveAt(0);
      }
    }

19 View Source File : SlidingMaxTest.cs
License : MIT License
Project Creator : 39M

[Test]
    public void IsFunctional() {
      List<float> list = new List<float>();

      for (int i = 0; i < 1000; i++) {
        float newValue = Random.value;

        _slidingMax.AddValue(newValue);

        list.Add(newValue);
        while (list.Count > MAX_HISTORY) {
          list.RemoveAt(0);
        }

        float max = list[0];
        for (int j = 1; j < list.Count; j++) {
          max = Mathf.Max(max, list[j]);
        }

        replacedert.That(max, Is.EqualTo(_slidingMax.Max));
      }
    }

19 View Source File : HandPool.cs
License : MIT License
Project Creator : 39M

public IHandModel TryGetModel(Chirality chirality, ModelType modelType) {
        for (int i = 0; i < modelList.Count; i++) {
          if (modelList[i].HandModelType == modelType && modelList[i].Handedness == chirality) {
            IHandModel model = modelList[i];
            modelList.RemoveAt(i);
            modelsCheckedOut.Add(model);
            return model;
          }
        }
        if (CanDuplicate) {
          for (int i = 0; i < modelsCheckedOut.Count; i++) {
            if (modelsCheckedOut[i].HandModelType == modelType && modelsCheckedOut[i].Handedness == chirality) {
              IHandModel modelToSpawn = modelsCheckedOut[i];
              IHandModel spawnedModel = GameObject.Instantiate(modelToSpawn);
              spawnedModel.transform.parent = _handPool.ModelsParent;
              _handPool.modelGroupMapping.Add(spawnedModel, this);
              modelsCheckedOut.Add(spawnedModel);
              return spawnedModel;
            }
          }
        }
        return null;
      }

19 View Source File : PostEffectsBase.cs
License : MIT License
Project Creator : 39M

private void RemoveCreatedMaterials ()
        {
            while (createdMaterials.Count > 0)
            {
                Material mat = createdMaterials[0];
                createdMaterials.RemoveAt (0);
#if UNITY_EDITOR
                DestroyImmediate (mat);
#else
                Destroy(mat);
#endif
            }
        }

19 View Source File : GameManager.cs
License : MIT License
Project Creator : 39M

void HitNote(int i)
    {
        hitCount++;
        comboBonus += comboCount;
        comboCount++;
        if (comboCount > maxCombo)
        {
            maxCombo = comboCount;
        }
        ShowCombo();
        AddHP();

        GameObject noteGameObject = noteObjectList[i].gameObject;
        audio.PlayOneShot(hitSoundClip);
        CreateHitParticle(noteGameObject.transform.position, hitParticlePrefab);
        ShowHitJudgement();

        Destroy(noteGameObject);
        noteObjectList.RemoveAt(i);

        if (!RuntimeData.useCustomMusic && noteObjectList.Count <= 0 && currentNote == null)
        {
            EndGame();
        }
    }

19 View Source File : GameManager.cs
License : MIT License
Project Creator : 39M

void MissedNote(int i)
    {
        missCount++;
        comboCount = 0;
        ResetCombo();
        SubHP();

        ShowMissJudgement();

        GameObject noteGameObject = noteObjectList[i].gameObject;
        CreateHitParticle(noteGameObject.transform.position, missParticlePrefab);
        Destroy(noteGameObject);
        noteObjectList.RemoveAt(i);

        if (!RuntimeData.useCustomMusic && noteObjectList.Count <= 0 && currentNote == null)
        {
            EndGame();
        }
    }

19 View Source File : GCodeParser.cs
License : MIT License
Project Creator : 3RD-Dimension

static void Parse(string line, int lineNumber)
		{
			MatchCollection matches = GCodeSplitter.Matches(line);

			List<Word> Words = new List<Word>(matches.Count);

			foreach (Match match in matches)
			{
				Words.Add(new Word() { Command = match.Groups[1].Value[0], Parameter = double.Parse(match.Groups[2].Value, Constants.DecimalParseFormat) });
			}

			for (int i = 0; i < Words.Count; i++)
			{
				if (Words[i].Command == 'N')
				{
					Words.RemoveAt(i--);
					continue;
				}

				if (IgnoreAxes.Contains(Words[i].Command) && Properties.Settings.Default.IgnoreAdditionalAxes)
				{
					Words.RemoveAt(i--);
					continue;
				}

				if (!ValidWords.Contains(Words[i].Command))
				{
					Warnings.Add($"ignoring unknown word (letter): \"{Words[i]}\". (line {lineNumber})");
					Words.RemoveAt(i--);
					continue;
				}

				if (Words[i].Command != 'F')
					continue;

				State.Feed = Words[i].Parameter;
				if (State.Unit == ParseUnit.Imperial)
					State.Feed *= 25.4;
				Words.RemoveAt(i--);
				continue;
			}

			for (int i = 0; i < Words.Count; i++)
			{
				if (Words[i].Command == 'M')
				{
					int param = (int)Words[i].Parameter;

					if (param != Words[i].Parameter || param < 0)
						throw new ParseException("M code can only have positive integer parameters", lineNumber);

					Commands.Add(new MCode() { Code = param, LineNumber = lineNumber });

					Words.RemoveAt(i);
					i--;
					continue;
				}

				if (Words[i].Command == 'S')
				{
					double param = Words[i].Parameter;

					if (param < 0)
						Warnings.Add($"spindle speed must be positive. (line {lineNumber})");

					Commands.Add(new Spindle() { Speed = Math.Abs(param), LineNumber = lineNumber });

					Words.RemoveAt(i);
					i--;
					continue;
				}

				if (Words[i].Command == 'G' && !MotionCommands.Contains(Words[i].Parameter))
				{
					#region UnitPlaneDistanceMode

					double param = Words[i].Parameter;

					if (param == 90)
					{
						State.DistanceMode = ParseDistanceMode.Absolute;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 91)
					{
						State.DistanceMode = ParseDistanceMode.Incremental;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 90.1)
					{
						State.ArcDistanceMode = ParseDistanceMode.Absolute;
						Words.RemoveAt(i);
						continue;
					}
					if (param == 91.1)
					{
						State.ArcDistanceMode = ParseDistanceMode.Incremental;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 21)
					{
						State.Unit = ParseUnit.Metric;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 20)
					{
						State.Unit = ParseUnit.Imperial;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 17)
					{
						State.Plane = ArcPlane.XY;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 18)
					{
						State.Plane = ArcPlane.ZX;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 19)
					{
						State.Plane = ArcPlane.YZ;
						Words.RemoveAt(i);
						i--;
						continue;
					}
					if (param == 4)
					{
						if (Words.Count >= 2 && Words[i + 1].Command == 'P')
						{
							if (Words[i + 1].Parameter < 0)
								Warnings.Add($"dwell time must be positive. (line {lineNumber})");

							Commands.Add(new Dwell() { Seconds = Math.Abs(Words[i + 1].Parameter), LineNumber = lineNumber });
							Words.RemoveAt(i + 1);
							Words.RemoveAt(i);
							i--;
							continue;
						}
					}

					Warnings.Add($"ignoring unknown command G{param}. (line {lineNumber})");
					Words.RemoveAt(i--);
					#endregion
				}
			}

			if (Words.Count == 0)
				return;

			int MotionMode = State.LastMotionMode;

			if (Words.First().Command == 'G')
			{
				MotionMode = (int)Words.First().Parameter;
				State.LastMotionMode = MotionMode;
				Words.RemoveAt(0);
			}

			if (MotionMode < 0)
				throw new ParseException("no motion mode active", lineNumber);

			double UnitMultiplier = (State.Unit == ParseUnit.Metric) ? 1 : 25.4;

			Vector3 EndPos = State.Position;

			if (State.DistanceMode == ParseDistanceMode.Incremental && State.PositionValid.Any(isValid => !isValid))
			{
				throw new ParseException("incremental motion is only allowed after an absolute position has been established (eg. with \"G90 G0 X0 Y0 Z5\")", lineNumber);
			}

			if ((MotionMode == 2 || MotionMode == 3) && State.PositionValid.Any(isValid => !isValid))
			{
				throw new ParseException("arcs (G2/G3) are only allowed after an absolute position has been established (eg. with \"G90 G0 X0 Y0 Z5\")", lineNumber);
			}

			#region FindEndPos
			{
				int Incremental = (State.DistanceMode == ParseDistanceMode.Incremental) ? 1 : 0;

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'X')
						continue;
					EndPos.X = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.X;
					Words.RemoveAt(i);
					State.PositionValid[0] = true;
					break;
				}

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'Y')
						continue;
					EndPos.Y = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.Y;
					Words.RemoveAt(i);
					State.PositionValid[1] = true;
					break;
				}

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'Z')
						continue;
					EndPos.Z = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.Z;
					Words.RemoveAt(i);
					State.PositionValid[2] = true;
					break;
				}
			}
			#endregion

			if (MotionMode != 0 && State.Feed <= 0)
			{
				throw new ParseException("feed rate undefined", lineNumber);
			}

			if (MotionMode == 1 && State.PositionValid.Any(isValid => !isValid))
			{
				Warnings.Add($"a feed move is used before an absolute position is established, height maps will not be applied to this motion. (line {lineNumber})");
			}

			if (MotionMode <= 1)
			{
				if (Words.Count > 0)
					Warnings.Add($"motion command must be last in line (ignoring unused words {string.Join(" ", Words)} in block). (line {lineNumber})");

				Line motion = new Line();
				motion.Start = State.Position;
				motion.End = EndPos;
				motion.Feed = State.Feed;
				motion.Rapid = MotionMode == 0;
				motion.LineNumber = lineNumber;
				State.PositionValid.CopyTo(motion.PositionValid, 0);

				Commands.Add(motion);
				State.Position = EndPos;
				return;
			}

			double U, V;

			bool IJKused = false;

			switch (State.Plane)
			{
				default:
					U = State.Position.X;
					V = State.Position.Y;
					break;
				case ArcPlane.YZ:
					U = State.Position.Y;
					V = State.Position.Z;
					break;
				case ArcPlane.ZX:
					U = State.Position.Z;
					V = State.Position.X;
					break;
			}

			#region FindIJK
			{
				int ArcIncremental = (State.ArcDistanceMode == ParseDistanceMode.Incremental) ? 1 : 0;

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'I')
						continue;

					switch (State.Plane)
					{
						case ArcPlane.XY:
							U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.X;
							break;
						case ArcPlane.YZ:
							throw new ParseException("current plane is YZ, I word is invalid", lineNumber);
						case ArcPlane.ZX:
							V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.X;
							break;
					}

					IJKused = true;
					Words.RemoveAt(i);
					break;
				}

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'J')
						continue;

					switch (State.Plane)
					{
						case ArcPlane.XY:
							V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Y;
							break;
						case ArcPlane.YZ:
							U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Y;
							break;
						case ArcPlane.ZX:
							throw new ParseException("current plane is ZX, J word is invalid", lineNumber);
					}

					IJKused = true;
					Words.RemoveAt(i);
					break;
				}

				for (int i = 0; i < Words.Count; i++)
				{
					if (Words[i].Command != 'K')
						continue;

					switch (State.Plane)
					{
						case ArcPlane.XY:
							throw new ParseException("current plane is XY, K word is invalid", lineNumber);
						case ArcPlane.YZ:
							V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Z;
							break;
						case ArcPlane.ZX:
							U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Z;
							break;
					}

					IJKused = true;
					Words.RemoveAt(i);
					break;
				}
			}
			#endregion

			#region ResolveRadius
			for (int i = 0; i < Words.Count; i++)
			{
				if (Words[i].Command != 'R')
					continue;

				if (IJKused)
					throw new ParseException("both IJK and R notation used", lineNumber);

				if (State.Position == EndPos)
					throw new ParseException("arcs in R-notation must have non-coincident start and end points", lineNumber);

				double Radius = Words[i].Parameter * UnitMultiplier;

				if (Radius == 0)
					throw new ParseException("radius can't be zero", lineNumber);

				double A, B;

				switch (State.Plane)
				{
					default:
						A = EndPos.X;
						B = EndPos.Y;
						break;
					case ArcPlane.YZ:
						A = EndPos.Y;
						B = EndPos.Z;
						break;
					case ArcPlane.ZX:
						A = EndPos.Z;
						B = EndPos.X;
						break;
				}

				A -= U;     //(AB) = vector from start to end of arc along the axes of the current plane
				B -= V;

				//see grbl/gcode.c
				double h_x2_div_d = 4.0 * (Radius * Radius) - (A * A + B * B);
				if (h_x2_div_d < 0)
				{
					throw new ParseException("arc radius too small to reach both ends", lineNumber);
				}

				h_x2_div_d = -Math.Sqrt(h_x2_div_d) / Math.Sqrt(A * A + B * B);

				if (MotionMode == 3 ^ Radius < 0)
				{
					h_x2_div_d = -h_x2_div_d;
				}

				U += 0.5 * (A - (B * h_x2_div_d));
				V += 0.5 * (B + (A * h_x2_div_d));

				Words.RemoveAt(i);
				break;
			}
			#endregion

			if (Words.Count > 0)
				Warnings.Add($"motion command must be last in line (ignoring unused words {string.Join(" ", Words)} in block). (line {lineNumber})");

			Arc arc = new Arc();
			arc.Start = State.Position;
			arc.End = EndPos;
			arc.Feed = State.Feed;
			arc.Direction = (MotionMode == 2) ? ArcDirection.CW : ArcDirection.CCW;
			arc.U = U;
			arc.V = V;
			arc.LineNumber = lineNumber;
			arc.Plane = State.Plane;

			Commands.Add(arc);
			State.Position = EndPos;
			return;
		}

19 View Source File : SynchSubscribers.cs
License : MIT License
Project Creator : 3F

public bool Unregister(T listener)
        {
            lock(sync)
            {
                int idx = listeners.FindIndex(p => p.Id == listener.Id);
                if(idx == -1) {
                    return false;
                }

                listeners.RemoveAt(idx);
                accessor.TryRemove(listener.Id, out T v);

                LSender.Send(this, $"listener has been removed from container - {listener.Id}", Message.Level.Debug);
                return true;
            }
        }

19 View Source File : RoslynUtil.cs
License : MIT License
Project Creator : 404Lcc

public static List<string> ReadCSPROJ(string path, ref List<string> defineList, ref List<string> dllFilePathList)
        {
            List<string> csFilePathList = new List<string>();
            List<string> csprojPathList = new List<string>();
            XmlDoreplacedent xmlDoreplacedent = new XmlDoreplacedent();
            xmlDoreplacedent.Load(path);
            XmlNode xmlNode = null;
            foreach (XmlNode item in xmlDoreplacedent.ChildNodes)
            {
                if (item.Name == "Project")
                {
                    xmlNode = item;
                    break;
                }
            }
            foreach (XmlNode item in xmlNode.ChildNodes)
            {
                if (item.Name == "PropertyGroup")
                {
                    foreach (XmlNode childItem in item.ChildNodes)
                    {
                        if (childItem.Name == "DefineConstants")
                        {
                            //宏引用
                            string define = childItem.InnerText;
                            defineList.AddRange(define.Split(';'));
                        }
                    }
                }
                if (item.Name == "ItemGroup")
                {
                    foreach (XmlNode childItem in item.ChildNodes)
                    {
                        if (childItem.Name == "Reference")
                        {
                            //dll引用
                            string dllFilePath = childItem.FirstChild.InnerText.Replace("\\", "/");
                            dllFilePathList.Add(dllFilePath);
                        }
                        if (childItem.Name == "Compile")
                        {
                            //cs引用
                            string csFilePath = childItem.Attributes[0].Value.Replace("\\", "/");
                            csFilePathList.Add(csFilePath);
                        }
                        if (childItem.Name == "ProjectReference")
                        {
                            //工程引用
                            string csprojFilePath = childItem.Attributes[0].Value;
                            csprojPathList.Add(csprojFilePath);
                        }
                    }
                }
            }
            //遍历工程引用
            foreach (string item in csprojPathList)
            {
                if (item.ToLower().Contains("editor"))
                {
                    continue;
                }
                ReadCSPROJ(item, ref defineList, ref dllFilePathList);
                string dllFilePath = "Library/Scriptreplacedemblies/" + item.Replace(".csproj", ".dll");
                if (File.Exists(dllFilePath))
                {
                    dllFilePathList.Add(dllFilePath);
                }
            }
            defineList = defineList.Distinct().ToList();
            //移除相关宏
            for (int i = defineList.Count - 1; i >= 0; i--)
            {
                if (defineList[i].Contains("UNITY_EDITOR"))
                {
                    defineList.RemoveAt(i);
                }
            }
            dllFilePathList = dllFilePathList.Distinct().ToList();
            return csFilePathList;
        }

19 View Source File : MainWindow.xaml.Macros.cs
License : MIT License
Project Creator : 3RD-Dimension

private void RefreshMacroButtons()
		{
			StackPanelMacros.Children.Clear();
			for (int i = 0; i < Macros.Count; i++)
			{
				int index = i;

				Button b = new Button();
				b.Content = (Macros[i].Item3 ? "[E] " : "") + Macros[i].Item1;
				b.Margin = new Thickness(2, 0, 2, 2);
				b.Click += (sender, e) => { RunMacro(Macros[index].Item2, Macros[index].Item3); };
				b.ToolTip = Macros[i].Item2;

				MenuItem edireplacedem = new MenuItem();
				edireplacedem.Header = "Edit";
				edireplacedem.Click += (s, e) =>
				{
					var emiw = new EditMacroItemWindow(Macros[index].Item1, Macros[index].Item2, Macros[index].Item3);
					emiw.ShowDialog();
					if (emiw.Ok)
					{
						Macros[index] = new Tuple<string, string, bool>(emiw.MacroName, emiw.Commands, emiw.UseMacros);
						SaveMacros();
						RefreshMacroButtons();
					}
				};

				MenuItem removeItem = new MenuItem();
				removeItem.Header = "Remove";
				removeItem.Click += (s, e) => { Macros.RemoveAt(index); RefreshMacroButtons(); };

				ContextMenu menu = new ContextMenu();
				menu.Items.Add(edireplacedem);
				menu.Items.Add(removeItem);

				if (i > 0)
				{
					MenuItem moveUpItem = new MenuItem();
					moveUpItem.Header = "Move Up";

					moveUpItem.Click += (s, e) =>
					{
						var macro = Macros[index];
						Macros.RemoveAt(index);
						Macros.Insert(index - 1, macro);

						SaveMacros();
						RefreshMacroButtons();
					};

					menu.Items.Add(moveUpItem);
				}

				b.ContextMenu = menu;

				StackPanelMacros.Children.Add(b);
			}
		}

19 View Source File : Console.cs
License : MIT License
Project Creator : 5minlab

public static void Log(string str, string stacktrace, LogType lv, DateTime time) {
            Instance.m_output.Add(new LogEntry(str, stacktrace, lv, time));
            if (Instance.m_output.Count > MAX_LINES) {
                Instance.m_output.RemoveAt(0);
            }
        }

19 View Source File : Shell.cs
License : MIT License
Project Creator : 5minlab

private void RecordCommand(string command) {
            m_history.Insert(0, command);
            if (m_history.Count > MAX_HISTORY)
                m_history.RemoveAt(m_history.Count - 1);
        }

19 View Source File : SimpleJSON.cs
License : MIT License
Project Creator : 71

public override JSONNode Remove(int aIndex)
        {
            if (aIndex < 0 || aIndex >= m_List.Count)
                return null;
            JSONNode tmp = m_List[aIndex];
            m_List.RemoveAt(aIndex);
            return tmp;
        }

19 View Source File : Shell.cs
License : MIT License
Project Creator : 5minlab

public static void Log(string str) {
            Instance.m_output.Add(str);
            if (Instance.m_output.Count > MAX_LINES) {
                Instance.m_output.RemoveAt(0);
            }
        }

19 View Source File : AINavMeshGenerator.cs
License : MIT License
Project Creator : 7ark

private void DestroyBadNodes()
    {
        //First check if each node is inside a destroy mask
        for (int i = Grid.Count - 1; i >= 0; i--)
        {
            Collider2D hit = Physics2D.OverlapCircle(Grid[i].position, 0.01f, destroyNodeMask);
            if (hit != null)
            {
                //At this point, we know this node is bad, and we must destroy it. For humanity itself.
                for (int j = 0; j < Grid[i].connections.Length; j++)
                {
                    //Go through all the connections to this node
                    if (Grid[i].connections[j] != null)
                    {
                        for (int k = 0; k < Grid[i].connections[j].connections.Length; k++)
                        {
                            //Set the nodes connections reference to this node to null, because it no longer exists.
                            //Is that confusing? It sounds confusing.
                            if (Grid[i].connections[j].connections[k] != null)
                            {
                                if (Grid[i].connections[j].connections[k] == Grid[i])
                                {
                                    Grid[i].connections[j].connections[k] = null;
                                }
                            }
                        }
                    }
                }
                Grid.RemoveAt(i);
            }
        }
    }

19 View Source File : Geometry.cs
License : GNU Lesser General Public License v3.0
Project Creator : 9and3

public static List<IntPoint> ToPath2D(this Polyline pl, Plane pln, double tolerance) {
            List<IntPoint> path = new List<IntPoint>();
            foreach (Point3d pt in pl) {
                path.Add(pt.ToIntPoint2D(pln, tolerance));
            }
            if (pl.IsClosed) {
                path.RemoveAt(pl.Count - 1);
            }
            return path;
        }

19 View Source File : AssetBundleManager.cs
License : Apache License 2.0
Project Creator : A7ocin

void Update()
		{
			// Update all in progress operations
			for (int i = 0; i < m_InProgressOperations.Count;)
			{
				var operation = m_InProgressOperations[i];
				if (operation.Update())
				{
					i++;
				}
				else
				{
					m_InProgressOperations.RemoveAt(i);
					ProcessFinishedOperation(operation);
				}
			}
		}

19 View Source File : OverlayLibraryEditor.cs
License : Apache License 2.0
Project Creator : A7ocin

public override void OnInspectorGUI(){	
			m_Object.Update();
			serializedObject.Update();
			
			GUILayout.Label ("overlayList", EditorStyles.boldLabel);


			OverlayDatareplacedet[] overlayElementList = GetOverlayDataArray();
			GUILayout.Space(30);
			GUILayout.Label ("Overlays reduced " + scaleAdjust.intValue +" time(s)");
			GUILayout.BeginHorizontal();
				
				if(scaleAdjust.intValue > 0){
					if(GUILayout.Button("Resolution +")){
						ScaleUpTextures();
					
						isDirty = true;
						canUpdate = false;
						scaleAdjust.intValue --;
					}
					
				}
			
				if(GUILayout.Button("Resolution -")){
					ScaleDownTextures();
				
					isDirty = true;
					canUpdate = false;
					scaleAdjust.intValue ++;
				}
				

			GUILayout.EndHorizontal();
			
			GUILayout.Space(20);
			
			
			GUILayout.BeginHorizontal();
				compress.boolValue = GUILayout.Toggle (compress.boolValue ? true : false," Compress Textures");

				readWrite.boolValue = GUILayout.Toggle (readWrite.boolValue ? true : false," Read/Write");

				if(GUILayout.Button(" Apply")){
					ConfigureTextures();
					
					isDirty = true;
					canUpdate = false;
				}

			GUILayout.EndHorizontal();
			
			GUILayout.Space(20);
			
			
			GUILayout.BeginHorizontal();
				if(GUILayout.Button("Order by Name")){
					canUpdate = false;

					List<OverlayDatareplacedet> OverlayDataTemp = overlayElementList.ToList();  
				
					//Make sure there's no invalid data
					for(int i = 0; i < OverlayDataTemp.Count; i++){
						if(OverlayDataTemp[i] == null){
							OverlayDataTemp.RemoveAt(i);
							i--;
						}
					}
				
					OverlayDataTemp.Sort((x,y) => x.name.CompareTo(y.name));

					for(int i = 0; i < OverlayDataTemp.Count; i++){
						SetOverlayData(i,OverlayDataTemp[i]);
					}
				
				}
				
				if(GUILayout.Button("Update List")){
					isDirty = true;
					canUpdate = false;
				}
				if (GUILayout.Button("Remove Duplicates"))
				{
					HashSet<OverlayDatareplacedet> Overlays = new HashSet<OverlayDatareplacedet>();
					
					foreach(OverlayDatareplacedet oda in overlayElementList)
					{
					Overlays.Add(oda);
					}

					m_OverlayDataCount.intValue = Overlays.Count;
					for(int i=0;i<Overlays.Count;i++)
					{
						SetOverlayData(i,Overlays.ElementAt(i));
					}
					isDirty = true;
					canUpdate = false;
				}
			GUILayout.EndHorizontal();
			
			GUILayout.Space(20);
				Rect dropArea = GUILayoutUtility.GetRect(0.0f,50.0f, GUILayout.ExpandWidth(true));
				GUI.Box(dropArea,"Drag Overlays here");
			GUILayout.Space(20);
			

			for(int i = 0; i < m_OverlayDataCount.intValue; i ++){
				GUILayout.BeginHorizontal();

				var result = EditorGUILayout.ObjectField(overlayElementList[i], typeof(OverlayDatareplacedet), true) as OverlayDatareplacedet;
					
					if(GUI.changed && canUpdate){
						SetOverlayData(i,result);
					}
					
					if(GUILayout.Button("-", GUILayout.Width(20.0f))){
						canUpdate = false;
						RemoveOverlayDataAtIndex(i);					
					}

				GUILayout.EndHorizontal();
				
				if(i == m_OverlayDataCount.intValue -1){
					canUpdate = true;	
					
					if(isDirty){
						overlayLibrary.UpdateDictionary();
						isDirty = false;
					}
				}
			}
			
			DropAreaGUI(dropArea);
			
			if(GUILayout.Button("Add OverlayData")){
				AddOverlayData(null);
			}
			
			if(GUILayout.Button("Clear List")){
				m_OverlayDataCount.intValue = 0;
			}
			
			
			m_Object.ApplyModifiedProperties();
			serializedObject.ApplyModifiedProperties();
		}

19 View Source File : SlotLibraryEditor.cs
License : Apache License 2.0
Project Creator : A7ocin

public override void OnInspectorGUI()
		{
			m_Object.Update();

			GUILayout.Label("slotElementList", EditorStyles.boldLabel);

			SlotDatareplacedet[] slotElementList = GetSlotDatareplacedetArray();

			GUILayout.BeginHorizontal();
			if (GUILayout.Button("Order by Name"))
			{
				canUpdate = false;

				List<SlotDatareplacedet> SlotDatareplacedetTemp = slotElementList.ToList();

				//Make sure there's no invalid data
				for (int i = 0; i < SlotDatareplacedetTemp.Count; i++)
				{
					if (SlotDatareplacedetTemp[i] == null)
					{
						SlotDatareplacedetTemp.RemoveAt(i);
						i--;
					}
				}

				SlotDatareplacedetTemp.Sort((x, y) => x.name.CompareTo(y.name));

				for (int i = 0; i < SlotDatareplacedetTemp.Count; i++)
				{
					SetSlotDatareplacedet(i, SlotDatareplacedetTemp[i]);
				}

			}

			if (GUILayout.Button("Update List"))
			{
				isDirty = true;
				canUpdate = false;
			}
			if (GUILayout.Button("Remove Duplicates"))
			{
				HashSet<SlotDatareplacedet> Slots = new HashSet<SlotDatareplacedet>();
				
				foreach(SlotDatareplacedet osa in slotElementList)
				{
					Slots.Add(osa);
				}
				
				m_SlotDatareplacedetCount.intValue = Slots.Count;
				for(int i=0;i<Slots.Count;i++)
				{
					SetSlotDatareplacedet(i,Slots.ElementAt(i));
				}
				isDirty = true;
				canUpdate = false;
			}

			GUILayout.EndHorizontal();

			GUILayout.Space(20);
			Rect dropArea = GUILayoutUtility.GetRect(0.0f, 50.0f, GUILayout.ExpandWidth(true));
			GUI.Box(dropArea, "Drag Slots here");
			GUILayout.Space(20);


			for (int i = 0; i < m_SlotDatareplacedetCount.intValue; i++)
			{
				GUILayout.BeginHorizontal();

				SlotDatareplacedet result = EditorGUILayout.ObjectField(slotElementList[i], typeof(SlotDatareplacedet), true) as SlotDatareplacedet;

				if (GUI.changed && canUpdate)
				{
					SetSlotDatareplacedet(i, result);
				}

				if (GUILayout.Button("-", GUILayout.Width(20.0f)))
				{
					canUpdate = false;
					RemoveSlotDatareplacedetAtIndex(i);
				}

				GUILayout.EndHorizontal();

				if (i == m_SlotDatareplacedetCount.intValue - 1)
				{
					canUpdate = true;

					if (isDirty)
					{
						slotLibrary.UpdateDictionary();
						isDirty = false;
					}
				}
			}

			DropAreaGUI(dropArea);

			if (GUILayout.Button("Add SlotDatareplacedet"))
			{
				AddSlotDatareplacedet(null);
			}

			if (GUILayout.Button("Clear List"))
			{
				m_SlotDatareplacedetCount.intValue = 0;
			}

			if (GUILayout.Button("Remove Invalid Slot Data"))
			{
				RemoveInvalidSlotDatareplacedet(slotElementList);
			}

			m_Object.ApplyModifiedProperties();
		}

19 View Source File : pRaceData.cs
License : Apache License 2.0
Project Creator : A7ocin

public void Remove(string crossCompatibleRace)
			{
				int removeAt = -1;
				for (int i = 0; i < settingsData.Count; i++)
				{
					if (settingsData[i].ccRace == crossCompatibleRace)
						removeAt = i;
				}
				if (removeAt > -1)
					settingsData.RemoveAt(removeAt);
			}

19 View Source File : DynamicDNAConverterBehaviour.cs
License : Apache License 2.0
Project Creator : A7ocin

public bool RemoveDnaCallbackDelegate(UnityAction<string, float> callback, string targetDnaName)
		{
			bool removed = false;

			if (!_dnaCallbackDelegates.ContainsKey(targetDnaName))
			{
				removed = true;
			}
			else
			{
				int removeIndex = -1;
				for (int i = 0; i < _dnaCallbackDelegates[targetDnaName].Count; i++)
				{
					if (_dnaCallbackDelegates[targetDnaName][i] == callback)
					{
						removeIndex = i;
						break;
					}
				}
				if (removeIndex > -1)
				{
					_dnaCallbackDelegates[targetDnaName].RemoveAt(removeIndex);
					if(_dnaCallbackDelegates[targetDnaName].Count == 0)
					{
						_dnaCallbackDelegates.Remove(targetDnaName);
					}
					removed = true;
				}
			}
			return removed;
		}

19 View Source File : MaxRectsBinPack.cs
License : Apache License 2.0
Project Creator : A7ocin

public Rect Insert(int width, int height, FreeRectChoiceHeuristic method) {
			Rect newNode = new Rect();
			int score1 = 0; // Unused in this function. We don't need to know the score after finding the position.
			int score2 = 0;
			switch(method) {
				case FreeRectChoiceHeuristic.RectBestShortSideFit: newNode = FindPositionForNewNodeBestShortSideFit(width, height, ref score1, ref score2); break;
				case FreeRectChoiceHeuristic.RectBottomLeftRule: newNode = FindPositionForNewNodeBottomLeft(width, height, ref score1, ref score2); break;
				case FreeRectChoiceHeuristic.RectContactPointRule: newNode = FindPositionForNewNodeContactPoint(width, height, ref score1); break;
				case FreeRectChoiceHeuristic.RectBestLongSideFit: newNode = FindPositionForNewNodeBestLongSideFit(width, height, ref score2, ref score1); break;
				case FreeRectChoiceHeuristic.RectBestAreaFit: newNode = FindPositionForNewNodeBestAreaFit(width, height, ref score1, ref score2); break;
			}
	 
			if (newNode.height == 0)
				return newNode;
	 
			int numRectanglesToProcess = freeRectangles.Count;
			for(int i = 0; i < numRectanglesToProcess; ++i) {
				if (SplitFreeNode(freeRectangles[i], ref newNode)) {
					freeRectangles.RemoveAt(i);
					--i;
					--numRectanglesToProcess;
				}
			}
	 
			PruneFreeList();
	 
			usedRectangles.Add(newNode);
			return newNode;
		}

19 View Source File : MaxRectsBinPack.cs
License : Apache License 2.0
Project Creator : A7ocin

public void Insert(List<Rect> rects, List<Rect> dst, FreeRectChoiceHeuristic method) {
			dst.Clear();
	 
			while(rects.Count > 0) {
				int bestScore1 = int.MaxValue;
				int bestScore2 = int.MaxValue;
				int bestRectIndex = -1;
				Rect bestNode = new Rect();
	 
				for(int i = 0; i < rects.Count; ++i) {
					int score1 = 0;
					int score2 = 0;
					Rect newNode = ScoreRect((int)rects[i].width, (int)rects[i].height, method, ref score1, ref score2);
	 
					if (score1 < bestScore1 || (score1 == bestScore1 && score2 < bestScore2)) {
						bestScore1 = score1;
						bestScore2 = score2;
						bestNode = newNode;
						bestRectIndex = i;
					}
				}
	 
				if (bestRectIndex == -1)
					return;
	 
				PlaceRect(bestNode);
				rects.RemoveAt(bestRectIndex);
			}
		}

19 View Source File : MaxRectsBinPack.cs
License : Apache License 2.0
Project Creator : A7ocin

void PlaceRect(Rect node) {
			int numRectanglesToProcess = freeRectangles.Count;
			for(int i = 0; i < numRectanglesToProcess; ++i) {
				if (SplitFreeNode(freeRectangles[i], ref node)) {
					freeRectangles.RemoveAt(i);
					--i;
					--numRectanglesToProcess;
				}
			}
	 
			PruneFreeList();
	 
			usedRectangles.Add(node);
		}

19 View Source File : MaxRectsBinPack.cs
License : Apache License 2.0
Project Creator : A7ocin

void PruneFreeList() {
			for(int i = 0; i < freeRectangles.Count; ++i)
				for(int j = i+1; j < freeRectangles.Count; ++j) {
					if (IsContainedIn(freeRectangles[i], freeRectangles[j])) {
						freeRectangles.RemoveAt(i);
						--i;
						break;
					}
					if (IsContainedIn(freeRectangles[j], freeRectangles[i])) {
						freeRectangles.RemoveAt(j);
						--j;
					}
				}
		}

19 View Source File : SlotData.cs
License : Apache License 2.0
Project Creator : A7ocin

public bool RemoveOverlay(params string[] names)
		{
			bool changed = false;
			foreach (var name in names)
			{
				for (int i = 0; i < overlayList.Count; i++)
				{
					if (overlayList[i].overlayName == name)
					{
						overlayList.RemoveAt(i);
						changed = true;
						break;
					}
				}
			}
			return changed;
		}

19 View Source File : SmoothMouseLook.cs
License : Apache License 2.0
Project Creator : A7ocin

void Update ()
		{
			if (axes == RotationAxes.MouseXAndY)
			{			
				rotAverageY = 0f;
				rotAverageX = 0f;
				
				rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
				rotationX += Input.GetAxis("Mouse X") * sensitivityX;
				
				rotArrayY.Add(rotationY);
				rotArrayX.Add(rotationX);
				
				if (rotArrayY.Count >= frameCounter) {
					rotArrayY.RemoveAt(0);
				}
				if (rotArrayX.Count >= frameCounter) {
					rotArrayX.RemoveAt(0);
				}
				
				for(int j = 0; j < rotArrayY.Count; j++) {
					rotAverageY += rotArrayY[j];
				}
				for(int i = 0; i < rotArrayX.Count; i++) {
					rotAverageX += rotArrayX[i];
				}
				
				rotAverageY /= rotArrayY.Count;
				rotAverageX /= rotArrayX.Count;
				 
				rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
				rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
				
				Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
				Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
				
				// alter camera pitch
				transform.localRotation = originalRotation * yQuaternion;
				// alter parent facing
				transform.parent.localRotation = parentRotation * xQuaternion;
			}
			else if (axes == RotationAxes.MouseX)
			{			
				rotAverageX = 0f;
				
				rotationX += Input.GetAxis("Mouse X") * sensitivityX;
				
				rotArrayX.Add(rotationX);
				
				if (rotArrayX.Count >= frameCounter) {
					rotArrayX.RemoveAt(0);
				}
				for(int i = 0; i < rotArrayX.Count; i++) {
					rotAverageX += rotArrayX[i];
				}
				rotAverageX /= rotArrayX.Count;
				 
					rotAverageX = ClampAngle (rotAverageX, minimumX, maximumX);
				
				Quaternion xQuaternion = Quaternion.AngleAxis (rotAverageX, Vector3.up);
				transform.parent.localRotation = parentRotation * xQuaternion;		
			}
			else
			{			
				rotAverageY = 0f;
				
				rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
				
				rotArrayY.Add(rotationY);
				
				if (rotArrayY.Count >= frameCounter) {
					rotArrayY.RemoveAt(0);
				}
				for(int j = 0; j < rotArrayY.Count; j++) {
					rotAverageY += rotArrayY[j];
				}
				rotAverageY /= rotArrayY.Count;
				 
					rotAverageY = ClampAngle (rotAverageY, minimumY, maximumY);
				
				Quaternion yQuaternion = Quaternion.AngleAxis (rotAverageY, Vector3.left);
				transform.localRotation = originalRotation * yQuaternion;
			}
		}

19 View Source File : UMAGeneratorBuiltin.cs
License : Apache License 2.0
Project Creator : A7ocin

public virtual void OnDirtyUpdate()
		{
			try
			{
				if (HandleDirtyUpdate(umaDirtyList[0]))
				{
					umaDirtyList.RemoveAt(0);
					umaData.MoveToList(cleanUmas);
					umaData = null;
				}
				else if (fastGeneration && HandleDirtyUpdate(umaDirtyList[0]))
				{
					umaDirtyList.RemoveAt(0);
					umaData.MoveToList(cleanUmas);
					umaData = null;
				}
			}
			catch (Exception ex)
			{
				UnityEngine.Debug.LogWarning("Exception in UMAGeneratorBuiltin.OnDirtyUpdate: " + ex);
			}
		}

19 View Source File : MainMenu.cs
License : Apache License 2.0
Project Creator : AantCoder

[HarmonyPrefix]
        public static void Prefix(Rect rect, List<ListableOption> optList)
        {
            if (optList.Count > 0 && optList[0].GetType() == typeof(ListableOption))
            {
                if (Current.ProgramState == ProgramState.Entry)
                {
                    var item = new ListableOption("OCity_LAN_btn".Translate(), delegate
                    {
                        MainMenu.OnMainMenuNetClick();
                    }, null);
                    optList.Insert(0, item);
                }
                else
                {
                    if (SessionClient.Get.IsLogined)
                    {
                        for (int i = 0; i < optList.Count; i++)
                        {
                            if (optList[i].label == "Save".Translate()
                                || optList[i].label == "LoadGame".Translate()
                                || optList[i].label == "ReviewScenario".Translate()
                                || optList[i].label == "SaveAndQuitToMainMenu".Translate()
                                || optList[i].label == "SaveAndQuitToOS".Translate()
                                || optList[i].label == "ConfirmQuit".Translate()
                                || optList[i].label == "QuitToMainMenu".Translate()
                                || optList[i].label == "QuitToOS".Translate())
                            {
                                optList.RemoveAt(i--);
                            }
                        }
                        var item = new ListableOption("OCity_MainMenu_Online".Translate(), delegate
                        {
                            Dialog_MainOnlineCity.ShowHide();
                        }, null);
                        optList.Add(item);

                        if (SessionClientController.Data.AttackModule != null)
                        {
                            item = new ListableOption("OCity_MainMenu_Withdraw".Translate(), delegate
                            {
                                Loger.Log("Client MainMenu VictoryHost");
                                SessionClientController.Data.AttackModule.VictoryHostToHost = true;
                            }, null);
                            optList.Add(item);
                        }

                        if (SessionClientController.Data.AttackUsModule != null)
                        {
                            item = new ListableOption("OCity_MainMenu_Surrender".Translate(), delegate
                            {
                                Loger.Log("Client MainMenu VictoryAttacker");
                                SessionClientController.Data.AttackUsModule.ConfirmedVictoryAttacker = true;
                            }, null);
                            optList.Add(item);
                        }

                        item = new ListableOption("QuitToMainMenu".Translate(), delegate
                        {
                            if (GameExit.BeforeExit != null)
                            {
                                GameExit.BeforeExit();
                            }
                            GenScene.GoToMainMenu();
                        }, null);
                        optList.Add(item);

                        item = new ListableOption("QuitToOS".Translate(), delegate
                        {
                            if (GameExit.BeforeExit != null)
                            {
                                GameExit.BeforeExit();
                            }
                            Root.Shutdown();
                        }, null);
                        optList.Add(item);


                    }
                }
            }
            
            if (Inited) return;
            Inited = true;
            SessionClientController.Init();
        }

See More Examples