@Override
    public synchronized void run() {
        World.Inst().TextMessage("ObjectsThread Was Started. List size: " + obj_list.size());

        List<BaseObject> Remove_List = new ArrayList<BaseObject>();

        while (true)
        {

            if(GetTickTime() <= 0.001)
                try {
                    Thread.currentThread().sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            for(BaseObject obj : obj_list)
            {

                if(obj.IsDestroy())
                    Remove_List.add(obj);
                else
                    obj.OneTick();

            }

            while(Remove_List.size() > 0)
            {
                World.Inst().TextMessage("Rem_list" + Remove_List.size());
                obj_list.remove(Remove_List.get(0));
                Remove_List.remove(0);
            }

        }
    }