private void ReInitialize()
 {
     if (UnityEditor.SceneView.lastActiveSceneView.camera.gameObject.GetComponent <ObjectPlacer>() == null)
     {
         _objectPlacer = UnityEditor.SceneView.lastActiveSceneView.camera.gameObject.AddComponent <ObjectPlacer>();
     }
 }
    public void AddObjectPlacer()
    {
        ObjectPlacer newPlacer = new ObjectPlacer();

        newPlacer.name = string.Concat("Object placer ", placers.Count + 1);
        placers.Add(newPlacer);
    }
Exemple #3
0
 /// <summary>
 /// Initializes the menu.
 /// </summary>
 public void Init()
 {
     //ui = GameManager.Instance.UI;
     settings  = GameManager.Instance.Settings;
     grid      = GameManager.Instance.Grid;
     objPlacer = GameManager.Instance.ObjectPlacer;
     title     = GetComponentInChildren <Text>();
 }
Exemple #4
0
 public LevelGenerator()
 {
     rp = new RoomPlacer();
     ra = new RoomArranger();
     cg = new CorridorGenerator();
     op = new ObjectPlacer();
     llRooms = new List<Room>();
 }
    public override void OnInspectorGUI()
    {
        script = (ObjectPlacer)target;

        serializedObject.Update();
        staticObjectList.DoLayoutList();
        pathObjectList.DoLayoutList();
        serializedObject.ApplyModifiedProperties();
    }
    private void Start()
    {
        objectPlacer = FindObjectOfType <ObjectPlacer>();

        for (int x = 0; x < refineValue; x++)
        {
            DoSim(numR);
        }
    }
Exemple #7
0
 void Awake()
 {
     if(instance != null) {
         Destroy(this.gameObject);
         return;
     }
     instance = this;
     shelf.anchoredPosition = shelf.anchoredPosition - new Vector2(0f,shelf.rect.height);
     endActionPhaseButton.anchoredPosition = endActionPhaseButton.anchoredPosition - new Vector2(0f,endActionPhaseButton.rect.height);
 }
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        PlacementWindow window = (PlacementWindow)EditorWindow.GetWindow(typeof(PlacementWindow));

        window.Show();

        _objectPlacer = UnityEditor.SceneView.lastActiveSceneView.camera.gameObject.AddComponent <ObjectPlacer>();
        _settings     = (SettingsScriptableObject)Resources.Load("PlacementSettings", typeof(SettingsScriptableObject));
        window.LoadValues();
    }
Exemple #9
0
    /// <summary>
    /// Start is called before the first frame update.
    /// </summary>
    private void Start()
    {
        ui        = GameManager.Instance.UI;
        cam       = GameManager.Instance.Camera;
        mouse     = GameManager.Instance.Mouse;
        grid      = GameManager.Instance.Grid;
        objPlacer = GameManager.Instance.ObjectPlacer;
        settings  = GameManager.Instance.Settings;
        settings.ResetSettings();

        InitIndicators();
        SetIndicatorStates(settings.EditMode);

        horizontalInput                      = new SingleInputHandler("Horizontal");
        verticalInput                        = new SingleInputHandler("Vertical");
        scrollWheelInput                     = new SingleInputHandler("Mouse ScrollWheel");
        changeObjInput                       = new SingleInputHandler("Change Object");
        turnObjInput                         = new SingleInputHandler("Turn Object");
        leftShiftInput                       = new SingleInputHandler("Alt Action 1");
        leftCtrlInput                        = new SingleInputHandler("Alt Action 2");
        leftAltInput                         = new SingleInputHandler("Alt Action 3");
        matchHeightLevelInput                = new SingleInputHandler("Match Height Level");
        addModeInput                         = new SingleInputHandler("Add Mode");
        removeModeInput                      = new SingleInputHandler("Remove Mode");
        hideModeInput                        = new SingleInputHandler("Hide Mode");
        toggleGridObjSnap                    = new SingleInputHandler("Toggle Grid Object Snap");
        toggleAddingToOccupiedCell           = new SingleInputHandler("Toggle Adding to Occupied Cell");
        toggleAutoselectAboveHighestOccupied = new SingleInputHandler("Toggle Autoselect Above Highest Occupied Cell");
        toggleKeepSameHeightLevel            = new SingleInputHandler("Toggle Keep Same Height Level On Uneven Terrain");
        saveFavoriteInput                    = new SingleInputHandler("Save Favorite");
        showAllInput                         = new SingleInputHandler("Show All");
        resetCamInput                        = new SingleInputHandler("Reset Camera");
        pauseInput = new SingleInputHandler("Pause");
        helpInput  = new SingleInputHandler("Help");

        numberKeys = new SingleInputHandler[] {
            new SingleInputHandler(KeyCode.Alpha0),
            new SingleInputHandler(KeyCode.Alpha1),
            new SingleInputHandler(KeyCode.Alpha2),
            new SingleInputHandler(KeyCode.Alpha3),
            new SingleInputHandler(KeyCode.Alpha4),
            new SingleInputHandler(KeyCode.Alpha5),
            new SingleInputHandler(KeyCode.Alpha6),
            new SingleInputHandler(KeyCode.Alpha7),
            new SingleInputHandler(KeyCode.Alpha8),
            new SingleInputHandler(KeyCode.Alpha9)
        };

        if (GameManager.Instance.UI != null)
        {
            screenDimensions = GameManager.Instance.UI.CanvasSize;
            settings.MouseCameraMoveActive = true;
        }
    }
Exemple #10
0
 void PlaceObject(Vector3 position)
 {
     if (useCommandWorkflow)
     {
         ICommand newCommand = new PlaceObjectCommand(position); //METODO EXPERIMENTAL, NO SE USA POR DEFECTO
         CommandInvoker.AddCommand(newCommand);
     }
     else
     {
         ObjectPlacer.PlaceObject(position, objectSelected); //METODO COMUN PARA COLOCAR OBJETOS USADO POR DEFECTO
     }
 }
Exemple #11
0
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
         return;
     }
     else
     {
         instance = this;
     }
 }
Exemple #12
0
 //Copy constructor
 public ObjectPlacer(ObjectPlacer other)
 {
     name            = other.name + " Clone";
     objectReference = other.objectReference;
     position        = other.position;
     distance        = other.distance;
     offset          = other.offset;
     type            = other.type;
     rotation        = other.rotation;
     scale           = other.scale;
     constraints     = other.constraints;
 }
Exemple #13
0
 private void Start()
 {
     if (masterPos == null)
     {
         masterPos = transform;
     }
     gameInfo = GameObject.FindObjectOfType <GameInfo>();
     sp       = gameObject.GetComponent <SpriteRenderer>();
     cam      = Camera.main;
     mouseAim = false;
     evals    = gameObject.GetComponent <EditorValues>();//for the laser aiming
     mouse    = GameObject.FindObjectOfType <ObjectPlacer>();
 }
Exemple #14
0
    public void Close()
    {
        ObjectPlacer op = GameObject.FindObjectOfType <ObjectPlacer>();

        op.CloseUI();
        //close all the elements on the hupcont to reset it.
        foreach (GameObject go in elements)
        {
            if (go)
            {
                go.SetActive(false);
            }
        }
    }
Exemple #15
0
 public void copyTo(ObjectPlacer tp)
 {
     tp.treeScale        = treeScale;
     tp.startSize        = startSize;
     tp.finalSize        = finalSize;
     tp.finalSizeDev     = finalSizeDev;
     tp.growingSpeed     = growingSpeed;
     tp.startSpawnNumber = startSpawnNumber;
     tp.doTrees          = doTrees;
     tp.spawnColor       = spawnColor;
     tp.areChildren      = areChildren;
     tp.regionArray      = regionArray;
     tp.planetT          = planetT;
 }
Exemple #16
0
    public override void OnInspectorGUI()
    {
        ObjectPlacer objectPlacer = (ObjectPlacer)target;

        DrawDefaultInspector();
        if (GUILayout.Button("Place / Update"))
        {
            objectPlacer.PlaceObjects();
        }
        else if (GUILayout.Button("Clear"))
        {
            objectPlacer.Clear();
        }
    }
Exemple #17
0
        public bool TryPlaceBuilding(IEnumerable <BuildingTile> tileList, StructureData structureData)
        {
            var tl = tileList.ToArray();

            if (tl.Any(t => t.hasBuilding))
            {
                return(false);
            }

            var buildingCoord = tl
                                .OrderBy(t => t.bounds.min.x)
                                .ThenBy(t => t.bounds.min.z)
                                .First()
                                .GetBuildingCoord();

            if (structureData.modelName != null)
            {
                var modelObject = LoadObject(structureData);
                ObjectPlacer.Place(chunks, modelObject, buildingCoord, Time.frameCount % 4);
            }

            var grids = structureData.numGrids;

            var structureGo = Instantiate(structurePrefab, transform);

            structureGo.transform.position = buildingCoord + new Vector3(grids.x * this.tiles.gridSize / 2f, 0,
                                                                         grids.y * this.tiles.gridSize / 2.0f);

            var structure = structureGo.GetComponent <Structure>();

            structure.chunks        = chunks;
            structure.ground        = ground;
            structure.origin        = buildingCoord;
            structure.gridSize      = tiles.gridSize;
            structure.numGrids      = structureData.numGrids;
            structure.structureType = structureData.type;
            var y = Mathf.Max(buildingCoord.y, water.config.waterLevel);

            structure.wallHeight = (Mathf.CeilToInt(y / (float)wallHeightMultiplier) + 3)
                                   * wallHeightMultiplier;
            _structures.Add(buildingCoord, structureGo);

            foreach (var tile in tl)
            {
                tile.hasBuilding = true;
            }

            return(true);
        }
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        ObjectPlacer myScript = (ObjectPlacer)target;

        if (GUILayout.Button("Place Objects"))
        {
            myScript.PlaceObjects();
        }
        if (GUILayout.Button("Clear Objects"))
        {
            myScript.ClearObjects();
        }
    }
    private void spawnAllObjects()
    {
        //planetInfo.generalObjectsInfo = new ObjectInfo[planetInfo.chunksAmmount][];
        //doTreesAfter = false;

        if (objPlacerObj != null)
        {
            for (int i = 0; i < planetInfo.chunksAmmount; i++)
            {
                ObjectPlacer tp1 = planetInfo.objPlacer [i];
                tp1.spawnObjects();
                planetInfo.generalObjectsInfo [i] = tp1.spawnedObjsInfo.ToArray();
            }
        }
    }
    private void PlaceObjects()
    {
        // Clear the existing objects
        ObjectPlacer placer = target as ObjectPlacer;

        DeleteAllChildren(placer.transform);

        // Fill with new objects

        float x = -placer.Width / 2.0f;
        float y = -placer.Height / 2.0f;

        while (x < placer.Width * 0.5f)
        {
            y = -placer.Height / 2.0f;
            while (y < placer.Height * 0.5f)
            {
                int objNumber = UnityEngine.Random.Range(0, placer.Objects.Count);

                GameObject obj = (GameObject)GameObject.Instantiate(placer.Objects[objNumber]);

                int matNumber = UnityEngine.Random.Range(0, placer.Materials.Count);

                Material material = placer.Materials[matNumber];

                obj.renderer.material = material;

                obj.transform.parent = placer.transform;

                // Add a random offset
                float randX = UnityEngine.Random.Range(0.0f, placer.GridSize) - placer.GridSize;
                float randY = UnityEngine.Random.Range(0.0f, placer.GridSize) - placer.GridSize;

                obj.transform.localPosition = new Vector3(x + randX, obj.transform.localPosition.z, y + randY);

                // Scale the object
                float scale = UnityEngine.Random.RandomRange(placer.MinScaleY, placer.MaxScaleY);
                obj.transform.localScale = new Vector3(obj.transform.localScale.x, scale, obj.transform.localScale.z);


                y += placer.GridSize;
            }

            x += placer.GridSize;
        }
    }
    private void Start()
    {
        roadPlacer   = GameObject.Find("Manager(Has to be at 0,0,0)").GetComponent <RoadPlacer>();
        objectPlacer = GameObject.Find("Manager(Has to be at 0,0,0)").GetComponent <ObjectPlacer>();

        //Loop through each building we can place and create UI for them
        foreach (GameObject building in buildings)
        {
            GameObject ImageButton = new GameObject();
            GameObject ImageText   = new GameObject();
            ImageButton.transform.parent = panel.transform;
            //Get the image from the building
            Sprite image = building.GetComponent <AbstractBuilding>().clickableIcon;
            ImageButton.AddComponent <RectTransform>();
            ImageButton.AddComponent <Image>();
            ImageButton.AddComponent <Button>();
            //Set the image to the image from building
            ImageButton.GetComponent <Image>().sprite = image;


            ObjectSelectButton selectScript = ImageButton.AddComponent <ObjectSelectButton>();
            selectScript.building = building;
            selectScript.change   = this;
            ImageButton.GetComponent <Button>().onClick.AddListener(selectScript.SetBuilding);


            ImageText.transform.parent = ImageButton.transform;
            RectTransform trans = ImageText.AddComponent <RectTransform>();


            trans.localPosition = new Vector2(0, -67);

            TMPro.TextMeshProUGUI text = ImageText.AddComponent <TMPro.TextMeshProUGUI>();
            text.text      = building.transform.name;
            text.alignment = TextAlignmentOptions.Center;

            text.enableAutoSizing = true;
            text.fontSizeMin      = 10;
            text.fontSizeMax      = 18;
            text.fontSize         = 20;
        }
    }
Exemple #22
0
    void Start()
    {
        levelGenerator = new SimpleGenerator(floorTiles, wallTiles, numberOfTiles);

        map          = levelGenerator.Generate();
        objectPlacer = new SimpleObjectPlacer(levelGenerator.GetTiles());

        objectPlacer.PlacePlayer(player);
        enemies = objectPlacer.PlaceEnemies(enemiesPrefabs, 1);
        objectPlacer.PlaceObject(medKitPrefab);
        objectPlacer.PlaceObject(bodyArmourPrefab);
        objectPlacer.PlaceObject(ammoBoxPrefab);
        List <Tile> path = getPath(enemies[0]);

        if (path.Count > 1)
        {
            path.Reverse();
            enemies[0].GetComponent <Enemy>().SetPath(path);
        }
    }
 // Draw the editor for an Object Placer
 private void DrawObjectPlacerSettings(ObjectPlacer objectSettings)
 {
     objectSettings.name            = EditorGUILayout.TextField("Name", objectSettings.name);
     objectSettings.objectReference = (Transform)EditorGUILayout.ObjectField("Object Reference", objectSettings.objectReference, typeof(Transform), false);
     objectSettings.position        = EditorGUILayout.Vector2Field("Position", objectSettings.position);
     objectSettings.distance        = EditorGUILayout.Slider("Distance", objectSettings.distance, 0.05f, 4f);
     objectSettings.offset          = EditorGUILayout.FloatField("Offset at start", objectSettings.offset);
     objectSettings.type            = (offsetType)EditorGUILayout.EnumPopup("Offset type", objectSettings.type);
     objectSettings.rotation        = EditorGUILayout.Vector3Field("Rotation", objectSettings.rotation);
     objectSettings.scale           = EditorGUILayout.Vector3Field("Scale", objectSettings.scale);
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Constraints:  ");
     GUILayout.Label("X");
     objectSettings.constraints[0] = EditorGUILayout.Toggle(objectSettings.constraints[0]);
     GUILayout.Label("Y");
     objectSettings.constraints[1] = EditorGUILayout.Toggle(objectSettings.constraints[1]);
     GUILayout.Label("Z");
     objectSettings.constraints[2] = EditorGUILayout.Toggle(objectSettings.constraints[2]);
     EditorGUILayout.EndHorizontal();
 }
Exemple #24
0
    protected override void Awake()
    {
        base.Awake();
        ObjectPlacer    = GetComponent <ObjectPlacer>();
        ObjectSelector  = GetComponent <ObjectSelector>();
        GUIPreProcessor = GetComponent <GUIPreProcessor>();

        CommandSender = GetComponent <CommandSender>();
        if (CommandSender == null)
        {
            Debug.LogWarning("CommandSender script not found");
        }

        if (GUI != null)
        {
            ActiveGUI = GUI.GetComponent <BaseGUI>();
        }
        else
        {
            Debug.LogWarning("GUI field not filled");
        }
    }
    void Start()
    {
        GameConfig   = GameConfig.Instance(); // Use this method make sure you use singleton.
        objectPlacer = new ObjectPlacer();

        if (!GameConfig.isSoloGame)
        {
            if (PhotonNetwork.inRoom)
            {
                AddPlayer(GameConfig.isSoloGame);
            }

            if (PhotonNetwork.isMasterClient)
            {
                AddPickUps(GameConfig.isSoloGame);
            }
        }
        else
        {
            AddPlayer(GameConfig.isSoloGame);
            AddPickUps(GameConfig.isSoloGame);
        }
    }
Exemple #26
0
        /// <summary>
        /// Initializes fields to default values if they were null
        /// post serialization.
        /// </summary>
        void OnEnable()
        {
            _instance     = this;
            IsInitialized = true;

            if (Generator == null)
            {
                Generator = new GenerationData();
            }
            if (EditorState == null)
            {
                EditorState = new EditorStateData();
            }
            if (Placer == null)
            {
                Placer = new ObjectPlacer();
            }
            if (Worker == null)
            {
                Worker = new BackgroundWorker();
            }

            IsEditor = IsInEditMode;
        }
    private IEnumerator updateAllMeshesCoroutine()
    {
        for (int i = 0; i < planetInfo.chunksAmmount; i++)
        {
            Vector3 xyz   = planetInfo.calculateXYZ(i);
            float   xDisp = -radius + interval2 + (interval2 * 2 * xyz.x);
            float   yDisp = -radius + interval2 + (interval2 * 2 * xyz.y);
            updateMesh(i, (int)xyz.z, planetInfo.chunkObject[i], planetInfo.chunkArray[i], LOD, planetInfo.mfChunkArray [i], xDisp, yDisp, interval2, false);

            if (objPlacerObj != null)
            {
                ObjectPlacer tp1 = planetInfo.chunkObject [i].AddComponent(typeof(ObjectPlacer)) as ObjectPlacer;
                objPlacerObj.copyTo(tp1);
                tp1.Initialize(planetInfo.colorArray [i]);
                tp1.calculateObjectID();
                planetInfo.objPlacer [i] = tp1;
                if (psh != null)
                {
                    if (psh.availableSpawns == null)
                    {
                        psh.availableSpawns = new List <SpawningInfo> ();
                    }
                    psh.availableSpawns.AddRange(tp1.getSpawningInfo());
                }
            }
            yield return(null);
        }

        if (objPlacerObj != null)
        {
            spawnAllObjects();
            hasTrees = true;
        }
        planetInfo.finishedCreating = true;
        setAllLOD(awayLOD, false);
    }
 public void Undo()
 {
     ObjectPlacer.RemoveObject(position);
 }
 public void Execute()
 {
     ObjectPlacer.PlaceObject(position, _gameObject);
 }
	private void Init()
	{
		Terrain terComponent = (Terrain)GetComponent(typeof(Terrain));
		terrainData = terComponent.terrainData; 
		
		DetailPlacement = new DetailPlacer();
		DetailPlacement.Textures = new List<DetailTextureSettings>();
		Objects = new ObjectPlacer();
		TreePlacement = new TreePlacer();
		DetailPlacement = new DetailPlacer();
		Textures = new TextureMapper();
		MultiPlacer = new MultiObjectPlacer();
		
		MinScale = 0.8f;
		MaxScale = 1.2f;
		RotateY = true;
		mapperInitialized = true;
		PlaceEnable = true;
	}
    public void Randomize(int seed, bool newTheme = true)
    {
        if (!Application.isPlaying) {
            Debug.LogError ("You may only randomize in play mode.");
            return;
        }

        if (referenceParameters == null) {
            gameObject.SetActive (false);
            var go = Instantiate (gameObject);
            var gen = Instantiate (generator.gameObject);
            gameObject.SetActive (true);
            referenceParameters = go.GetComponent<ObjectPlacer> ();
            referenceGenerator = gen.GetComponent<LSystem> ();
        }

        Rand hash = new Rand (seed);

        RandomizePlacement (hash, newTheme);
        RandomizeColors (hash, newTheme);
        RandomizeTrees (hash, newTheme);

        Place ();
        UpdateGlobals ();
    }
Exemple #32
0
 private void Awake()
 {
     objectPlacer = new ObjectPlacer();
     levelScript  = FindObjectOfType <Level>();
 }
Exemple #33
0
 void HandleOnRetirePressed()
 {
     instance = null;
     Destroy(this.gameObject);
 }
 void Start()
 {
     cursor = GameObject.FindObjectOfType <ObjectPlacer>();
 }
Exemple #35
0
    // Use this for initialization
    void Start()
    {
        placer = FindObjectOfType<ObjectPlacer>();

        roadPlacingStatus = RoadPlacingStatus.NotPlacing;

        nodesWithNewRoads = new List<Node>();
    }