示例#1
0
        public override bool Execute(EntityPool pool, ExecutionContext ctx)
        {
            Vec3?loc;
            var  rs = pool.CheckFindAndRemove(Target, e => ctx.CheckM("Removal", Target.Position, e), out loc);

            switch (rs)
            {
            case EntityPool.Result.NoError:
                return(true);

            case EntityPool.Result.IDNotFoundLocationMismatch:
            case EntityPool.Result.IDNotFound:
            case EntityPool.Result.VerificationFailed:
                return(false);                          //do not distinbuish. these errors could all be either caused by bad node states OR bad entity behavior

            default:
                throw new IntegrityViolation(Target + ": Unsupported CheckFindAndRemove() return value (" + rs + ")");
            }
        }