Exemple #1
0
    public static SwitchCommand Create(Player player, Character switchTarget)
    {
        var switchAction = new GameObject("Switch").AddComponent <SwitchCommand>();

        switchAction.Initialize(player, switchTarget);
        return(switchAction);
    }
Exemple #2
0
        public IGameObject GetGameObject(string name, float x = 0f, float y = 0f, bool usedAsTemplate = false)
        {
            //If we don't already have a template then generate one first
            if (!gameObjectTemplates.ContainsKey(name))
            {
                var generated = GenerateTemplate(name);

                if (!generated)
                {
                    throw new Exception(string.Format("Could not find a definition for the named game object: {0}", name));
                }
            }

            var template  = gameObjectTemplates[name];
            var newObject = new GameObject();//rawPool.New();

            template.CopyInto(newObject);
            newObject.Position = new Vector2(x, y);

            newObject.Initialize();

            if (!usedAsTemplate)
            {
                FireOnGameObjectCreated(newObject);
            }

            return(newObject);
        }
        private KnifeShieldEffect CreateEffect(PlayerController user, int numKnives, float radiusMultiplier = 2f)
        {
            KnifeShieldItem   knifeShieldItem   = (KnifeShieldItem)PickupObjectDatabase.GetById(65);
            KnifeShieldEffect knifeShieldEffect = new GameObject("knife shield effect")
            {
                transform =
                {
                    position = user.LockedApproximateSpriteCenter,
                    parent   = user.transform
                }
            }.AddComponent <KnifeShieldEffect>();

            knifeShieldEffect.numKnives                = numKnives;
            knifeShieldEffect.remainingHealth          = knifeShieldItem.knifeHealth;
            knifeShieldEffect.knifeDamage              = knifeShieldItem.knifeDamage;
            knifeShieldEffect.circleRadius             = radiusMultiplier;
            knifeShieldEffect.rotationDegreesPerSecond = knifeShieldItem.rotationDegreesPerSecond;
            knifeShieldEffect.throwSpeed               = knifeShieldItem.throwSpeed;
            knifeShieldEffect.throwRange               = knifeShieldItem.throwRange;
            knifeShieldEffect.throwRadius              = knifeShieldItem.throwRadius;
            knifeShieldEffect.radiusChangeDistance     = knifeShieldItem.radiusChangeDistance;
            knifeShieldEffect.deathVFX = knifeShieldItem.knifeDeathVFX;
            this.shieldPrefab          = knifeShieldItem.knifePrefab;
            knifeShieldEffect.Initialize(user, this.shieldPrefab);
            return(knifeShieldEffect);
        }
        protected override void Awake()
        {
            const float OffsetX = 5f;

            CreateViewController("SearchCompactKeyboardViewController");

            ViewController.rectTransform.anchorMin        = new Vector2(0.5f, 0.5f);
            ViewController.rectTransform.anchorMax        = ViewController.rectTransform.anchorMin;
            ViewController.rectTransform.pivot            = ViewController.rectTransform.anchorMin;
            ViewController.rectTransform.anchoredPosition = Vector2.zero;
            ViewController.rectTransform.sizeDelta        = new Vector2(80f, 70f);

            _predictionBar = new GameObject("EnhancedSearchPredictionBar").AddComponent <PredictionBar>();
            _predictionBar.Initialize(ViewController.transform, 3.5f, 19f, -35f, 45f);

            var keyboardGO = new GameObject("EnhancedSearchKeyboard", typeof(CompactSearchKeyboard), typeof(RectTransform));

            var rt = keyboardGO.GetComponent <RectTransform>();

            rt.SetParent(ViewController.transform, false);
            rt.anchorMin        = Vector2.zero;
            rt.anchorMax        = Vector2.one;
            rt.pivot            = new Vector2(0.5f, 0.5f);
            rt.anchoredPosition = new Vector2(OffsetX, 5f);
            rt.sizeDelta        = Vector2.zero;

            _keyboard = keyboardGO.GetComponent <CompactSearchKeyboard>();

            _textDisplayComponent                    = BeatSaberUI.CreateText(ViewController.rectTransform, "", new Vector2(OffsetX, 28f), new Vector2(4f, 4f));
            _textDisplayComponent.fontSize           = 6f;
            _textDisplayComponent.alignment          = TextAlignmentOptions.Center;
            _textDisplayComponent.enableWordWrapping = false;

            base.Awake();
        }
Exemple #5
0
    public static AnonAction Create(Action action, string name = "AnonAction")
    {
        var anonAction = new GameObject(name).AddComponent <AnonAction>();

        anonAction.Initialize(action);
        return(anonAction);
    }
Exemple #6
0
    public GameObject CreateGooglePOIs(JSONObject mapData, Vector2 posMER, Vector2 posUNITY, string preID)
    {
        /* CREATE POI TILE */
        GameObject POITile = new GameObject("Tile_POIs_Google");

        POITile.isStatic         = true;
        POITile.transform.parent = this.transform;

        if (mapData == null || mapData.list == null)
        {
            return(POITile);
        }

        /* FOR EACH POI */
        foreach (JSONObject geo in mapData.list)
        {
            /* CALCULATE POI POSITION */
            JSONObject coords       = geo["geometry"]["location"];
            Vector2    coordsMeters = GM.LatLonToMeters(coords["lat"].f, coords["lng"].f);
            Vector2    POI          = new Vector2(coordsMeters.x - posMER.x, coordsMeters.y - posMER.y) + posUNITY; // UNITY POI COORDS

            /* PUT POI IN TILE */
            PoiPoint newPoi = new GameObject("POI").AddComponent <PoiPoint>();
            newPoi.gameObject.isStatic = true;
            newPoi.transform.SetParent(POITile.transform);
            try
            {
                string types = geo["types"].ToString().Remove(0, 1);
                types = types.Remove(types.Length - 1).Replace("\"", "");
                Dictionary <string, string> poiDic = geo.ToDictionary();
                if (poiDic.ContainsKey("types"))
                {
                    poiDic["types"] = types;
                }
                else
                {
                    poiDic.Add("types", types);
                }

                if (newPoi.Initialize(new Vector2(coords[0].f, coords[1].f), preID + geo["place_id"].str, poiDic, POI, POIsprites, this.GetComponent <Canvas>(), userPos, poiAnims, uiController, rtController))
                {
                    int idx = POIs.FindIndex(x => Extensions.CalcLevenshteinDistance(x.Name, newPoi.Name) == 0);
                    if (idx == -1)
                    {
                        POIs.Add(newPoi);
                        POIsInfo.Add(newPoi.Name);
                    }
                    else
                    {
                        Destroy(newPoi.gameObject);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.Log(ex);
            }
        }
        return(POITile);
    }
Exemple #7
0
    // how do i create an entity?
    // large row:
    // beat finds empty row
    // we
    public static GraphicEntity1 New(GridRect rect, Board1 board)
    {
        var ge = new GameObject().AddComponent <GraphicEntity1>();

        ge.Initialize(rect, board);
        return(ge);
    }
Exemple #8
0
    public static AttackCommand Create(Player player, Character actor, FieldSlot targetSlot, Attack attack)
    {
        var attackCommand = new GameObject("AttackCommand").AddComponent <AttackCommand>();

        attackCommand.Initialize(player, actor, targetSlot, attack);
        return(attackCommand);
    }
Exemple #9
0
        public static Vehicle Create(VehicleSpawner spawner)
        {
            var inst = new GameObject().AddComponent <Vehicle>();

            VehicleDef def;

            if (spawner.Info.CarId == -1)
            {
                def = GetRandomDef();
            }
            else
            {
                def = Item.GetDefinition <VehicleDef>(spawner.Info.CarId);
            }

            inst.Initialize(def, spawner.Info.Colors);

            inst.transform.position      = spawner.transform.position - Vector3.up * inst.AverageWheelHeight;
            inst.transform.localRotation = spawner.transform.rotation;

            if (Networking.Server.Instance != null)
            {
                Networking.Server.Instance.GlobalGroup.Add(inst);
            }

            return(inst);
        }
    public static ReplaceCommand Create(Player player, Character replacement)
    {
        var replaceAction = new GameObject("Switch").AddComponent <ReplaceCommand>();

        replaceAction.Initialize(player, replacement);
        return(replaceAction);
    }
Exemple #11
0
        private void CreateChunks()
        {
            if (_chunks != null)
            {
                foreach (var chunk in _chunks)
                {
                    DestroyObject(chunk.gameObject);
                }
            }

            _chunks = new T[
                Mathf.RoundToInt(Mathf.Ceil((float)_map.Width / GraphicsManager.ChunkSize)),
                Mathf.RoundToInt(Mathf.Ceil((float)_map.Height / GraphicsManager.ChunkSize))
                      ];
            for (int x = 0; x < _map.Width; x += GraphicsManager.ChunkSize)
            {
                for (int y = 0; y < _map.Height; y += GraphicsManager.ChunkSize)
                {
                    var chunk = new GameObject(string.Format("chunk_{0}:{1}", x, y)).AddComponent <T>();
                    chunk.transform.SetParent(transform);
                    var startPoint = new Point(x, y);
                    chunk.transform.localPosition = GraphicsManager.Scale(startPoint);
                    chunk.Initialize(_map, startPoint, GraphicsManager.ChunkSize);
                    _chunks[x / GraphicsManager.ChunkSize, y / GraphicsManager.ChunkSize] = chunk;
                }
            }
        }
        public static Vehicle Create(int carId, int[] colors, Vector3 position, Quaternion rotation)
        {
            var inst = new GameObject().AddComponent <Vehicle>();

            VehicleDef def;

            if (carId == -1)
            {
                def = GetRandomDef();
            }
            else
            {
                def = Item.GetDefinition <VehicleDef>(carId);
            }

            inst.Initialize(def, colors);

            inst.transform.position      = position - Vector3.up * inst.AverageWheelHeight;
            inst.transform.localRotation = rotation;

            //    Networking.Server.Instance.GlobalGroup.Add(inst);

            OutOfRangeDestroyer destroyer = inst.gameObject.AddComponent <OutOfRangeDestroyer> ();

            destroyer.timeUntilDestroyed = 5;
            destroyer.range = 300;

            return(inst);
        }
Exemple #13
0
        public EditorScreen()
        {
            ScreenManager.OnResize += () =>
            {
                this.Rectangle = new Rectangle(ScreenManager.ScreenWidth - 32, 0, 32, ScreenManager.ScreenHeight);
                ScreenManager.GetScreen <GameScreen>().Rectangle.Width = ScreenManager.ScreenWidth - 32;
            };
            selectedTexture = ScreenManager.ContentManager.Load <Texture2D>("Images/Selected");

            InputHelper.RegisterShortcut("saveChanges", SaveChanges, Keys.LeftControl, Keys.S);

            Vector2 position = Vector2.Zero;

            foreach (Type type in Assembly.GetExecutingAssembly().GetTypes().Where(x => typeof(GameObject).IsAssignableFrom(x) && x != typeof(GameObject)))
            {
                if (type != typeof(TerrainGrass))
                {
                    GameObject go = (GameObject)Activator.CreateInstance(type);
                    go.Initialize(position);
                    go.LoadContent(ScreenManager.ContentManager);
                    gameObjects.Add(go);
                    position.Y += 32;
                }
            }

            selectedGameObject = gameObjects.First();
        }
Exemple #14
0
        private void CreateRoads(JSONObject mapData, Vector2 worldCenter)
        {
            foreach (var geo in mapData["features"].list)
            {
                var l = new List <Vector3>();

                for (int i = 0; i < geo["geometry"]["coordinates"].list.Count; i++)
                {
                    var c  = geo["geometry"]["coordinates"][i];
                    var bm = GM.LatLonToMeters(c[1].f, c[0].f);
                    var pm = new Vector2(bm.x - Rect.center.x, bm.y - Rect.center.y);
                    l.Add(pm.ToVector3xz());
                }

                var m = new GameObject("road").AddComponent <RoadPolygon>();
                m.transform.parent = this.transform;
                try
                {
                    m.Initialize(geo["properties"]["id"].str, this, l, geo["properties"]["kind"].str);
                }
                catch (Exception ex)
                {
                    Debug.Log(ex);
                }
            }
        }
Exemple #15
0
    public static GameObject Get(GameObject prefab)
    {
        if (!pools.ContainsKey(prefab))
        {
            var newPool = new GameObject(prefab.name + "Pool").AddComponent <Pool>();
            newPool.Initialize(prefab);
            pools.Add(prefab, newPool);
        }

        while (pools[prefab].availableObjects.Count == 0)
        {
            foreach (var obj in pools[prefab].objects)
            {
                if (!obj.activeSelf)
                {
                    ResetObj(obj);

                    pools[prefab].availableObjects.Enqueue(obj);
                }
            }
            if (pools[prefab].availableObjects.Count == 0)
            {
                pools[prefab].Grow();
            }
        }

        var returnedObj = pools[prefab].availableObjects.Dequeue();

        returnedObj.SetActive(true);
        return(returnedObj);
    }
Exemple #16
0
        internal GameObject Build(ContentManager contentManager)
        {
            Texture2D textureWallHorz2 = contentManager.Load <Texture2D>(_assetName);
            double    directionDegree  = 360;

            switch (_orientation)
            {
            case ObjectOrientation.Horizontal:
                textureWallHorz2 = contentManager.Load <Texture2D>(_assetName);
                directionDegree  = 360;
                break;

            case ObjectOrientation.Vertical:
                textureWallHorz2 = contentManager.Load <Texture2D>(_assetName);
                directionDegree  = 90;
                break;
            }

            GameObject obj = GetObject(_gameObjectType);

            obj.DirectionDegree = directionDegree;
            obj.Width           = _width;
            obj.Height          = _height;
            obj.Initialize(new Vector2(_x, _y),
                           new GameObjectItem(textureWallHorz2, new Vector2(0, 0)));

            return(obj);
        }
Exemple #17
0
        public static VehicleSpawner Create(ParkedVehicle info)
        {
            var vs = new GameObject().AddComponent <VehicleSpawner>();

            vs.Initialize(info);
            return(vs);
        }
Exemple #18
0
    public static GifPlayer Create(RawImage image, List <UniGif.GifTexture> textures)
    {
        var player = new GameObject("GifPlayer").AddComponent <GifPlayer>();

        player.Initialize(image, textures);
        return(player);
    }
        /// <summary>
        /// Initializes array of blocks and the neighbour references in blocks and chunks.
        /// </summary>
        public void Initialize()
        {
            _worldApi = GetComponent <WorldApi>();

            // initialize arrays
            _blocks = new Block[_worldApi.SizeX * _worldApi.SizeY * _worldApi.SizeZ];

            _worldApi.Initialize(_blocks);

            for (int blockX = 0; blockX < _worldApi.SizeX; blockX++)
            {
                for (int blockY = 0; blockY < _worldApi.SizeY; blockY++)
                {
                    for (int blockZ = 0; blockZ < _worldApi.SizeZ; blockZ++)
                    {
                        int blockId = blockX * _worldApi.SizeZ * _worldApi.SizeY + blockY * _worldApi.SizeZ + blockZ;

                        VectorI3 coords = new VectorI3(blockX, blockY, blockZ);

                        Block block = new GameObject($"Block ({blockX}, {blockY}, {blockZ})").AddComponent <Block>();
                        _blocks[blockId] = block;

                        block.Initialize(blockId, transform, _worldApi, coords);
                    }
                }
            }

            InitializeBlockReferences();

            for (int blockId = 0; blockId < _blocks.Length; blockId++)
            {
                _blocks[blockId].InitializeChunkReferences();
            }
        }
    private void Initialize()
    {
        m_ObjectPools = new Dictionary <PoolableObject, ObjectPool>();

        foreach (ObjectPoolDefinition definition in m_ObjectPoolDefinitions)
        {
            if (definition.ObjectType != null)
            {
                //If the pool already exists, notify the developer
                if (m_ObjectPools.ContainsKey(definition.ObjectType))
                {
                    Debug.LogWarning("Trying to create an already existing pool \"" + definition.ToString() + "\" please extend the original instead.");
                }
                else
                {
                    ObjectPool newPool = new GameObject("Pool " + definition.ObjectType.name).AddComponent <ObjectPool>();
                    newPool.transform.SetParent(transform); //Parent it to ourselves

                    newPool.Initialize(definition);

                    m_ObjectPools.Add(definition.ObjectType, newPool);
                }
            }
        }
    }
Exemple #21
0
    IEnumerator DebugDelete(bool[] isFull, int[] shiftAmount)
    {
        while (gridIsFalling)
        {
            yield return(null);
        }

        while (tetrominoFalling)
        {
            yield return(null);
        }

        var pistonSet = pistonSpawner.spawnIfFull(isFull);

        while (!pistonSet.FinishSet())
        {
            yield return(null);
        }

        inputLock = true;

        while (tetrominoFalling)
        {
            yield return(null);
        }

        var gridCopy      = gridUtils.GridShallowCopy(); // must be below pistonSpawner. Otherwise new minos not updated
        var gridCopyUtils = new GridUtils();

        gridCopyUtils.Initialize(gridCopy);

        var isFullCopy      = gridCopyUtils.MakeIsFull();
        var isEmptyCopy     = gridCopyUtils.MakeIsEmpty();
        var shiftAmountCopy = gridCopyUtils.MakeShiftAmount(isFullCopy, isEmptyCopy);

        RowDestroyer rowDestroyer = new GameObject().AddComponent <RowDestroyer>();

        rowDestroyer.Initialize(this, gridCopyUtils);
        rowDestroyer.RequestDestroyRows(isFull, shiftAmountCopy, pistonSet); // must be shiftAmountCopy. Otherwise new tetromino not move down.

        gridIsFalling = true;
        RowSlider rowSlider = new GameObject().AddComponent <RowSlider>();

        rowSlider.Initialize(this, gridCopyUtils);
        rowSlider.SlideDown(isEmptyCopy, pistonSet);


        while (rowSlider.coroutineCount != 0)
        {
            Debug.Log("coroutineCount = " + rowSlider.coroutineCount);
            yield return(null);
        }
        inputLock = false;

        gridIsFalling = false;

        Debug.Log("rowslider Finished!");
        Debug.Log("lock release");
    }
    public static UpdateHealth Create(HealthChangeEvent e)
    {
        var updateHealth = new GameObject("UpdateHealth").AddComponent <UpdateHealth>();

        updateHealth.tag = "DontDestroyOnTrigger";
        updateHealth.Initialize(e);
        return(updateHealth);
    }
	private PathDivision CreateDivision(float xStart) {
		PathDivision division = new GameObject("", typeof(PathDivision)).GetComponent<PathDivision>();
		division.transform.SetParent(transform);
		division.Initialize(path, xStart, xStart + divisionSize);
		division.name = "Path Division (" + ((int)xStart).ToString() + ")";
		division.transform.position = path.bottomContour.GetPointAtX(division.xRange.min);
		return division;
	}
Exemple #24
0
 public GameObject AddMessageBox(GameObject messageBox)
 {
     lock (locker)
     {
         messageBoxStack.Push(messageBox);
         messageBox.Initialize();
         return(messageBox);
     }
 }
    /// <summary>
    /// Begins a new battle.
    /// </summary>
    /// <param name="playersToAdd">The player initializers of players to participate in the battle.</param>
    /// <param name="focus">Whether this battle is the main battle of the game.</param>
    public static void NewBattle(PlayerInitializer[] playersToAdd, bool focus)
    {
        Player[] players = new Player[playersToAdd.Length];
        //state = GameState.PLACING_SHIPS;
        humanPlayers = 0;
        //playerBoardDimensions = Mathf.Clamp(Mathf.FloorToInt(Mathf.Sqrt((float)totalBoardTileLimit / (float)players.Length)), 6, 20);

        //For all players create their own board
        for (int i = 0; i < players.Length; i++)
        {
            players[i] = new GameObject("Player " + (i + 1)).AddComponent <Player>();
            float   angle         = 360 / players.Length * i * Mathf.Deg2Rad;
            Vector3 boardPosition = new Vector3(Mathf.Cos(angle), 0f, Mathf.Sin(angle)) * playerBoardDistanceFromCenter + Vector3.up * playerBoardElevation;
            Player  player        = players[i];
            player.board = new GameObject("Board " + i).AddComponent <Board>();
            player.board.Initialize(playersToAdd[i].boardDimensions, boardPosition, player, playerBoardGridMaterial);
            Cameraman.AddPosition(3f, new Vector3(boardPosition.x, playersToAdd[i].boardDimensions + playerBoardElevation, boardPosition.z), new Vector3(90, 0, 0), "Board " + (i + 1));
            player.color = playersToAdd[i].playerColor;
            player.AI    = playersToAdd[i].AI;
            player.ID    = i;

            if (!player.AI)
            {
                humanPlayers++;
            }

            for (int x = 0; x < players.Length; x++)
            {
                if (x != i)
                {
                    player.hits.Add(x, new List <BoardTile>());
                    player.misses.Add(x, new List <BoardTile>());
                }
            }
        }

        //Add the battle manager GameObject
        Battle battle = new GameObject("Battle").AddComponent <Battle>();

        if (focus)
        {
            mainBattle = battle;
            ChangeState(GameState.PLACING_SHIPS);
            foreach (Battle secondaryBattle in secondaryBattles)
            {
                secondaryBattle.End();
            }

            secondaryBattles = new List <Battle>();
        }
        else
        {
            secondaryBattles.Add(battle);
        }

        battle.Initialize(players);
    }
        private Chunk CreateChunk(Vector3Int position, float isolevel)
        {
            Chunk chunk = new GameObject("Chunk (" + position.x + ", " + position.y + ", " + position.z + ")").AddComponent <Chunk>();

            chunk.transform.parent        = transform;
            chunk.meshRenderer.material   = material;
            chunk.transform.localPosition = position;
            chunk.Initialize(chunkSize, position, isolevel);
            return(chunk);
        }
Exemple #27
0
    public override void Execute()
    {
        //look upon me and despair
        Actor a = new GameObject("player actor", typeof(Actor)).GetComponent <Actor>();

        a.Initialize(Resources.Load <ActorTemplate>("ActorTemplates/player").Instantiate(), 0);
        a.SetPosition(_position ?? Grid.GetRandom(TileStatus.Vacant));

        GlobalEvents.Raise(GlobalEvent.ActorAdded, a);
    }
    public override void Execute()
    {
        NPActor a = new GameObject("", typeof(NPActor)).GetComponent <NPActor>();

        a.Initialize(_template.Instantiate(), 1);
        a.gameObject.name = a.data.name;
        a.SetPosition(_position ?? Grid.GetRandom(TileStatus.Vacant));

        GlobalEvents.Raise(GlobalEvent.ActorAdded, a);
    }
Exemple #29
0
        internal void AddObject(GameObject gameObject)
        {
            if (gameObject.Tag != null && _objects.Any(o => o.Tag != null && o.Tag.Equals(gameObject.Tag)))
            {
                throw new ArgumentException("There is already a gameObject with ID = " + gameObject.Tag);
            }

            _objects.Add(gameObject);
            gameObject.Initialize();
        }
Exemple #30
0
 internal static void GameObjectConstructorCallback(GameObject go)
 {
     // If the GameObject isn't networked, initialize it immediately after creation.
     // Otherwise, wait for the network manager to set up the GameObject.
     lock (gameObjectHandlerLock) {
         if (go.NetIdentity == null)
         {
             go.Initialize();
         }
     }
 }
Exemple #31
0
    private void AddLine(Vector2 startPos, Vector2 endPos)
    {
        SpriteLine newLine = new GameObject().AddComponent <SpriteLine> ();

        newLine.gameObject.name = "SpriteLine" + lines.Count;
        newLine.transform.SetParent(this.transform);
        newLine.Initialize(startPos, endPos);
        newLine.SetColor(lineColor);
        newLine.SetThickness(lineThickness);
        lines.Add(newLine);
    }
Exemple #32
0
 /// <summary>
 /// Generates a crowd with the given arguments.
 /// </summary>
 /// <param name="criteria">The crowd's criteria</param>
 /// <param name="isStatic">Are the crowd's members static?</param>
 /// <param name="collection">The crowd's event scheduler.</param>
 public SmartCrowd GenerateCrowd(ISmartCrowdCriteria criteria, bool isStatic, EventCollection collection)
 {
     SmartCrowd instance = new GameObject(NamePrefix + currentCrowdIndex).AddComponent<SmartCrowd>();
     instance.tag = "Smart Object";
     if (Parent != null)
     {
         instance.transform.parent = Parent.transform;
     }
     instance.Initialize(criteria, isStatic, collection);
     instance.Portrait = GetPortrait(currentCrowdIndex);
     currentCrowdIndex++;
     return instance;
 }
Exemple #33
0
        public override void Initialize(out GameObject _root)
        {
            _root = new GameObject();
            _root.AddComponent(new EventController());

            m_background = new GameObject();
            m_background.transform.parent = _root.transform;
            _root.GetComponent<EventController>().AddEvent(new Event(m_background.AddComponent(new MenuBackground(m_background1, m_background2, 110f)), "Start", null, 5f));
            m_background.Initialize();

            m_arrow = new GameObject();
            m_arrow.AddComponent(new Animation(new Spritesheet(m_arrowSheet, 8), 0.125f));
            m_arrow.AddComponent(new MusicComponent(m_menuSelect));

            m_menu = new GameObject();
            m_menu.transform.parent = _root.transform;
            m_menu.transform.position += new Vector2(10f, 75f);
            m_menu.AddComponent(new UIMenu(new string[] { "Start Game", "Options", "Tutorial" }, Alignment.Left, 1f, Color.White, m_standartPixelFont, m_arrow));
            _root.GetComponent<EventController>().AddEvent(new Event(m_menu.AddComponent(new Fade(Color.TransparentBlack)), "NewFade", new object[] { Color.White, 1f }, 40f));
            m_menu.Initialize();

            m_blueShip = new GameObject();
            m_blueShip.transform.parent = _root.transform;
            m_blueShip.transform.position = new Vector2(-150, -200f);
            m_blueShip.active = false;
            m_blueShip.AddComponent(new SpriteRenderer(m_blueShipTexture));
            m_blueShip.AddComponent(new MoveObject(new Vector2(5f, -25), Vector2.Zero, (float)Math.PI / 6f, 3f));
            _root.GetComponent<EventController>().AddEvent(new Event(m_blueShip.AddComponent(new Activator()), "Activate", null, 27f));
            m_blueShip.Initialize();

            m_redShip = new GameObject();
            m_redShip.transform.parent = _root.transform;
            m_redShip.transform.position = new Vector2(0, 200f);
            m_redShip.active = false;
            m_redShip.AddComponent(new SpriteRenderer(m_redShipTexture));
            m_redShip.AddComponent(new MoveObject(new Vector2(25f, -10f), Vector2.Zero, (float)Math.PI / 6f, 3f));
            _root.GetComponent<EventController>().AddEvent(new Event(m_redShip.AddComponent(new Activator()), "Activate", null, 28.5f));
            m_redShip.Initialize();

            m_greenShip = new GameObject();
            m_greenShip.transform.parent = _root.transform;
            m_greenShip.transform.position = new Vector2(150f, -50f);
            m_greenShip.active = false;
            m_greenShip.AddComponent(new SpriteRenderer(m_greenShipTexture));
            m_greenShip.AddComponent(new MoveObject(new Vector2(20f, 30f), Vector2.Zero, (float)Math.PI / 6f, 2f));
            _root.GetComponent<EventController>().AddEvent(new Event(m_greenShip.AddComponent(new Activator()), "Activate", null, 31f));
            m_greenShip.Initialize();

            m_title = new GameObject();
            m_title.transform.parent = _root.transform;
            m_title.transform.position -= new Vector2(0f, 20f);
            m_title.AddComponent(new SpriteRenderer(m_titleTexture));
            _root.GetComponent<EventController>().AddEvent(new Event(m_title.AddComponent(new Fade(Color.TransparentBlack)), "NewFade", new object[] { Color.White, 1f }, 37f));
            m_title.Initialize();

            m_subtitle = new GameObject();
            m_subtitle.transform.parent = _root.transform;
            m_subtitle.transform.position += new Vector2(0f, 20f);
            m_subtitle.AddComponent(new SpriteRenderer(m_subtitleTexture));
            _root.GetComponent<EventController>().AddEvent(new Event(m_subtitle.AddComponent(new Fade(Color.TransparentBlack)), "NewFade", new object[] { Color.White, 1f }, 37f));
            m_subtitle.Initialize();

            m_titleMusicObject = new GameObject();
            m_titleMusicObject.transform.parent = _root.transform;
            _root.GetComponent<EventController>().AddEvent(new Event(m_titleMusicObject.AddComponent(new MusicComponent(m_titleMusic)), "Play", null, 4f));
            m_titleMusicObject.Initialize();

            m_segaLogo = new GameObject();
            m_segaLogo.transform.parent = _root.transform;
            m_segaLogo.transform.scale = new Vector2(0.181f, 0.181f);
            m_segaLogo.AddComponent(new Animation(new Spritesheet(m_segaLogoSheet, new Vector2(500, 165)), 0.0825f));
            _root.GetComponent<EventController>().AddEvent(new Event(m_segaLogo.AddComponent(new Fade(Color.White)), "NewFade", new object[] { Color.TransparentBlack, 0.5f }, 3.5f));
            _root.GetComponent<EventController>().AddEvent(new Event(m_segaLogo.AddComponent(new Activator()), "Deactivate", null, 4f));
            m_segaLogo.Initialize();

            m_logo = new GameObject();
            m_logo.transform.parent = _root.transform;
            m_logo.AddComponent(new SpriteRenderer(m_logoTexture));
            Fade logoFade = (Fade)m_logo.AddComponent(new Fade(Color.TransparentBlack));
            _root.GetComponent<EventController>().AddEvent(new Event(logoFade, "NewFade", new object[] { Color.White, 1f }, 9f));
            _root.GetComponent<EventController>().AddEvent(new Event(logoFade, "NewFade", new object[] { Color.TransparentBlack, 1f }, 15f));
            m_logo.Initialize();

            m_presents = new GameObject();
            m_presents.transform.parent = _root.transform;
            m_presents.AddComponent(new UIText("Presents", m_standartPixelFont, Color.White));
            Fade presentsFade = (Fade)m_presents.AddComponent(new Fade(Color.TransparentBlack));
            _root.GetComponent<EventController>().AddEvent(new Event(presentsFade, "NewFade", new object[] { Color.White, 1f }, 16f));
            _root.GetComponent<EventController>().AddEvent(new Event(presentsFade, "NewFade", new object[] { Color.TransparentBlack, 1f }, 22f));
            m_presents.Initialize();

            Game1.LoadScene("AccelCourse.Editor");
        }
Exemple #34
0
	public IEnumerator Create () {
		if (materials == null) {
			InitializeMaterials();
		}
		if(depth > 0)
			transform.Rotate(Random.Range (-maxTwist, maxTwist), 0f, 0f);
		if(this.GetComponent<MeshFilter>() == null) {
			gameObject.AddComponent<MeshFilter>().mesh = mesh;
			gameObject.AddComponent<MeshRenderer>().material = materials[usedColor];
		}
		if(depth < maxDepth) {
			for (int i = 0; i < childDirections.Length; i++) {
				if(Random.value < spawnProbability || depth == 0) {
					Fractal go = new GameObject("Fractal Child").AddComponent<Fractal>();
					go.Initialize(this, i);
					Vector3 scale = go.transform.localScale;
					go.transform.scaleFrom(.2f,Vector3.zero);
					yield return new WaitForSeconds(.2f);
				}
			}
		}
		if(depth == 0) {		
			FractalMaster = this;
		} else {
			NonMasterFractals.Add(this);
		}
		usedColor ++;
		if(usedColor >= materials.Length) {
			usedColor = 0;
		}
	}
        public IGameObject GetGameObject(string name, float x = 0f, float y = 0f, bool usedAsTemplate = false)
        {
            //If we don't already have a template then generate one first
            if (!gameObjectTemplates.ContainsKey(name))
            {
                var generated = GenerateTemplate(name);

                if (!generated)
                {
                    throw new Exception(string.Format("Could not find a definition for the named game object: {0}", name));
                }
            }

            var template = gameObjectTemplates[name];
            var newObject = new GameObject();//rawPool.New();

            template.CopyInto(newObject);
            newObject.Position = new Vector2(x, y);

            newObject.Initialize();

            if (!usedAsTemplate)
                FireOnGameObjectCreated(newObject);

            return newObject;
        }
	public virtual GameObject BuildScreen( GUIScreen screen, GUIEditScreenInfo esi )
	{
		GameObject newobj = new GameObject(name);
		if ( newobj != null )
		{
			GUIEditObject eo = newobj.AddComponent(typeof(GUIEditObject)) as GUIEditObject;
			eo.guiScreen = screen;
			eo.name = screen.name;			
			eo.LoadedXML = loadedXML;
			eo.editSI = esi;
			// add all the objects below this
			foreach( GUIObject guiObj in screen.Elements )
				BuildObject(newobj, guiObj);	
			// set game object
			this.screen = newobj;
			// initialize (sets up all skins/styles)
			screen.Initialize(esi.ScreenInfo);
		}
		
		return newobj;
	}
Exemple #37
0
        /* 
		 * 
		 * GameObject's management
		 * 
		 */

        public void SpawnObject(string name, GameObject obj)
        {
            obj.Name = name;
            obj.Engine = this;
            obj.Enabled = true;
            obj.Id = totalObjCount++;
            Objects[name] = obj;
            dirtyObjects[obj] = 1;
            obj.Initialize();
        }
Exemple #38
0
 /// <summary>
 /// initializes objects and adds it to the game field
 /// </summary>
 /// <param name="obj"></param>
 public void AddGameObject(GameObject obj)
 {
     obj.Initialize(Content);
     _newObjects.Add(obj);
 }