Example #1
0
    void mouse()
    {
        if(IsMouseOverGui()) {
            return;
        }

        if(Input.GetMouseButtonDown(1)) { // 0 => klik rait

            BaseLevelThing levelobject = levelscript.LastHoverObject; //LastHoverObject uzsit levelskriptaa katraa kadraa

            if(levelobject != null && levelobject.GetType().ToString() == "Room" ){ //hoverotais objekts ir telpa
                Room mightBeGroundCube = (Room)levelobject;
                if(mightBeGroundCube.FuncType == FuncTypes.ground){ //shii telpa ir zemes kluciitis, shos ignoreejam - neljaujam hoverot
                    levelobject = null;
                }
            }

            if(levelobject != null) {

                if(levelobject.GetHashCode() == lastLevelobjectLookedAt){ //atkaaroti spiezh labo peli uz vienas telpas, taatad grib izsleegt kverijreezhiimu
                    stopQueryMode();
                    lastLevelobjectLookedAt = -1;
                    return;
                }
                lastLevelobjectLookedAt = levelobject.GetHashCode();

                if(!QueryMode) {//ieprieksh nebija kverijrezhiims
                    //pieseivo speeles aatrumu un kameras poziiciju, tikai ja neesam jau iekshaa zuumaa (saglabaaju peedeejos lietotaaja izveeleetos parametrus, pat vairaaku seciigu zuumu gadiijumaa)
                    levelscript.TimeScaleHistoric = levelscript.TimeScale;
                    camerascript.LastUserCamPos = camerascript.transform.position;
                } else {
                    stopQueryMode();
                }

                QueryMode = true;
                QueryTarget = levelobject;

                camerascript.ZoomToRoom(levelobject.transform.position.x, levelobject.transform.position.y - (levelobject.SizeY / 2f) + 1.5f); // centree uz punktu nvieniibas virs griidas
                levelscript.TimeScale = 0.25f; // paleenina aatrumu

            } else {
                if(QueryMode) { //ja nav nekas apskataams un ieprieksh bija , tikai tad ir nepiecieshams noresetot (citaadi noreseto kameras poziiciju, kas vispaar nav uzsetota un ir slikti )
                    stopQueryMode();
                }
            }
        }
    }
Example #2
0
 void stopQueryMode()
 {
     levelscript.emptyPlacer();
     QueryMode = false;
     QueryTarget = null;
     camerascript.UnZoomFromRoom();
     levelscript.TimeScale = levelscript.TimeScaleHistoric; //atjauno aatrumu
 }
Example #3
0
    void mouse()
    {
        LastHoverObject = null;
        BaseLevelThing LastHoverRoom = null;
        BaseLevelThing LastHoverGadget = null;
        BaseLevelThing LastHoverAgent = null;

        if(guiscript.IsMouseOverGui()) { //kursors atrodas uz HUDa,nevajag uzbaazties ar saviem kluchiem
            return;
        }

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if(Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << 8)) { // 1<<8 ir 8.slaanja bitmaska - neredzama plakne, kur lipinaat klaati limenobjektus

            //vieniibas grids
            int roundUnityX = Mathf.RoundToInt(hit.point.x);
            int roundUnityY = Mathf.RoundToInt(hit.point.y);
            LastPosGrid = new Vector3(roundUnityX, roundUnityY, 0);
            LastPosGridPrecise = new Vector3(hit.point.x, hit.point.y, 0);

            //decimaalgrids
            float roundDeciX = Mathf.RoundToInt(hit.point.x / GridDecimalScale) * GridDecimalScale + GridDecimalScale / 2f;// pieskaita offsetu - pus ruutinju - lai atrastos grida ruutinjas viduu
            float roundDeciY = roundUnityY; // -- pa Y nebuus decimaalgrids - lai liip tikai pa staaviem    Mathf.RoundToInt(hit.point.y / GridDecimalScale) * GridDecimalScale + GridDecimalScale / 2f;
            LastPosDecGrid = new Vector3(roundDeciX, roundDeciY, 0);

            //PLEISERI pielipina pie taa grida, kaads noraadiits objektaa, kas palshlaik atrodas PLEISERII
            if(PlacerStickyness == GridStickyness.uniGrid){
                placer.transform.position = LastPosGrid;
            } else if(PlacerStickyness == GridStickyness.deciGrid){
                placer.transform.position = LastPosDecGrid;
            } else {
                //EEEAAGLE -- neliip pie grida
            }

            //peedeejo hoveroto telpu varu viennoziimig atrast peec shiim koordinaateem
            LastHoverRoom = roomAtThisPosition(roundUnityX,roundUnityY);

        }

        //gadhzeta un agjenta atrashanai jaaveic reikaastings
        if(Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << 10)) { //gadzhetu slaanis
            LastHoverGadget = hit.transform.gameObject.GetComponent<BaseLevelThing>();
        }
        if(Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << 11)) { //agjentu slaanis
            LastHoverAgent = hit.transform.gameObject.GetComponent<BaseLevelThing>();
        }

        //atrod svariigaako no hoverotajaam lietaam
        if(LastHoverAgent != null){
            LastHoverObject = LastHoverAgent;
        }  else if(LastHoverGadget != null) {
            LastHoverObject = LastHoverGadget;
        } else if(LastHoverRoom != null) {
            LastHoverObject = LastHoverRoom;
        }

        if(Input.GetMouseButtonDown(0)) { // 0 => klik left
            //  print (lastPos);

            if(guiscript.IsMouseOverGui()) { //kursors atrodas uz HUDa, nevajag ljaut novietot lietas
                return;
            }

            if(objectInPlacer) { //PLEISERII ir ielaadeeds prefabs
                Transform levelobject = placer.transform.GetChild(0); //pienjemu, ka tikai viens objekts tiek likts vienlaiciigi
                BaseLevelThing script = levelobject.GetComponent<BaseLevelThing>(); //objekts instanceeets un skriptaa varu apskatiities apreekjinaatos offsetus

                script.PlaceOnGrid(0); //katrs bloks pats izlems, ko dariit, kad tas tiek klikskshkinaats uz grida (ja bloks tiek novietots, tad tas tiks aizvaakts no PLEISERA)
                CalculateNavgrid();//kaut kas iespeejams ir mainiijies, jaaparreekjina

                if(placer.transform.childCount == 0) {

                    objectInPlacer = false; //bloks tika novietots (vai aizvaakts or smnt) un nu PLEISERIS ir tukshss
                    numRooms++; //droshs paliek droshs - palielinaashu skaitiitaaju (pat ja kluciitis netika novietots liimenii)
                }

            }

        }

        if(Input.GetMouseButtonDown(1)) { //rait
            emptyPlacer();
        }

        if(Input.GetMouseButtonDown(2)) { // 2 => klik mid
            print("Uni:" + LastPosGrid + " Deci:" + LastPosDecGrid +" (" + LastPosGridPrecise + ")" );
        }
    }