예제 #1
0
 public MainEventProcessor(GameObjectContainer gameObjectContainer, GameObjectFactory factory, EventBus eventBus)
 {
   _objectFactory = factory;
   _objectContainer = gameObjectContainer;
   _eventBus = eventBus;
   _initializeSubscriptions();
 }
	// Use this for initialization
	void Start () {

		switch (LevelSelection.CURRENT_GAMEMODE) {
		case GameMode.endless:
			factory = new EndlessGameObjectFactory();
			break;
		case GameMode.scenario:
			factory = new ScenarioGameObjectFactory();
			break;
		case GameMode.story:
			factory = new NullGameObjectFactory();
			break;
				}

		spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
		// Apply Xmas theme if relevant
		if (LevelSelection.CURRENT_THEME == Theme.xmas) {
			spriteFlipped = xmasSpriteFlipped;
			spriteNormal = xmasSpriteNormal;
			spriteRenderer.sprite = spriteFlipped; // Else the kiwi magically gets a Santa hat...
		}
		
		PlayerPrefs.SetString ("LoadedLevel", Application.loadedLevelName);
		playerStatus.makeHighScoreList ();
		rigidbody2D.fixedAngle = true;
		factory.generateLevelStart ();
		initializeScore ();
	}
예제 #3
0
 public GameEngine(ObservableTimer timer, MessageBus bus, GameObjectFactory objectFactory)
 {
     Timer = timer;
     Bus = bus;
     ObjectFactory = objectFactory;
     IsRunning = false;
     Initialise();
 }
예제 #4
0
    public static RenderTexture Render(GameObject gameObject, int resolution)
    {
        if (threePointLight == null)
        {
            threePointLight = Resources.Load <GameObject>("Prefabs/ThreePointLights");
        }

        //calculate object bounds
        Bounds bounds = new Bounds();

        foreach (MeshRenderer renderer in gameObject.GetComponentsInChildren <MeshRenderer>())
        {
            bounds.Encapsulate(renderer.bounds);
        }

        var renderScene = EditorSceneManager.NewPreviewScene();

        GameObject parent = new GameObject("Scene Parent");

        GameObject instance = GameObjectFactory.Instantiate(gameObject, parent: parent.transform);

        GameObject cameraGameObject = GameObjectFactory.Create("Camera", parent: parent.transform);

        var camera = cameraGameObject.AddComponent <Camera>();

        camera.clearFlags             = CameraClearFlags.Nothing;
        camera.forceIntoRenderTexture = true;

        cameraGameObject.transform.position  = bounds.center + Vector3.right + Vector3.forward + Vector3.up;
        cameraGameObject.transform.position *= Mathf.Max(bounds.extents.x, bounds.extents.y, bounds.extents.z) * 1.2f;
        cameraGameObject.transform.rotation  = Quaternion.Euler(0, 225, 0) * Quaternion.Euler(45f, 0, 0);

        RenderTexture texture = new RenderTexture(resolution, resolution, 16);

        texture.Create();

        camera.targetTexture = texture;
        camera.scene         = renderScene;

        GameObject lightGameObject = GameObjectFactory.Instantiate(threePointLight, parent: parent.transform);
        var        light           = lightGameObject.AddComponent <Light>();

        light.type = LightType.Directional;
        light.transform.rotation = Quaternion.Euler(50f, -30f, 0f);

        EditorSceneManager.MoveGameObjectToScene(parent, renderScene);

        camera.Render();
        camera.targetTexture = null;

        GameObject.DestroyImmediate(parent);

        EditorSceneManager.UnloadSceneAsync(renderScene);

        return(texture);
    }
예제 #5
0
        public void GenerateGeometry(Effect testEffect, IModule module)
        {
            this.effect = testEffect;
            this.module = module;
            vertices    = new VertexPositionColorTextureNormal[heightMapSize * heightMapSize];

            int vertIndex = 0;



            for (float i = 0; i < heightMapSize; i++)
            {
                for (float j = 0; j < heightMapSize; j++)
                {
                    var vert = new VertexPositionColorTextureNormal();

                    vert.Position       = CalculateVertexPosition(i, j);
                    vert.Texture        = new Vector2(i * 2f / heightMapSize, j * 2f / heightMapSize);
                    vert.Normal         = normal;
                    vert.Color          = NodeColor;
                    vertices[vertIndex] = vert;
                    vertIndex++;
                }
            }


            GenerateIndices();

            if (normal == Vector3.Down || normal == Vector3.Backward || normal == Vector3.Right)
            {
                indices = indices.Reverse().ToArray();
            }



            indices = indices.Reverse().ToArray();


            Sphereify(sphereSize);

            GenerateNormals(ref vertices);


            short[] ind = indices;
            var     p   = vertices.Select(x => x.Position).ToList();
            var     s   = BoundingSphere.CreateFromPoints(p);


            ProceduralShape spherePatch = new ProceduralShape(vertices, indices);

            spherePatch.Translate(positionOffset);
            gameObject = GameObjectFactory.CreateRenderableGameObjectFromShape(spherePatch, effect);
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(gameObject);

            isLeaf = true;
        }
        public void GetChildrenShouldThrowMissingReferenceExceptionWhenParameterIsDestroyedGameObjectTest()
        {
            var gameObjectInstance = GameObjectFactory.New().AddComponent <RectTransform>().Build();

            var rectTransform = gameObjectInstance.GetComponent <RectTransform>();

            Utilities.Object.AutoDestroy(gameObjectInstance);

            Assert.Throws <MissingReferenceException>(() => Utilities.RectTransform.GetChildren(rectTransform));
        }
예제 #7
0
        private static void CreateWallObject(Vector3 wallCenterPoint, ProceduralCuboid cuboid)
        {
            cuboid.SetColor(RandomHelper.RandomColor);
            GameObject wallObject = GameObjectFactory.CreateRenderableGameObjectFromShape(cuboid, EffectLoader.LoadSM5Effect("flatshaded"));

            wallObject.Transform.Translate(wallCenterPoint);
            wallObject.AddComponent(new ShadowCasterComponent());
            // wallObject.AddComponent(new StaticMeshColliderComponent())
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(wallObject);
        }
예제 #8
0
        public override void BhvOnLeave()
        {
            base.BhvOnLeave();

            if (m_setting != null)
            {
                GameObjectFactory.DestroyComponent(m_setting);
                m_setting = null;
            }
        }
예제 #9
0
 public AbstractScene(SceneManager manager, GameObjectFactory <string> resourceFactory, GameObjectFinder finder, AbstractInput input)
 {
     sceneManager          = manager;
     this.resourceFactory  = resourceFactory;
     this.gameObjectFinder = finder;
     this.input            = input;
     completed             = false;
     permitUnloadResources = true;
     camera = Camera.main;
 }
예제 #10
0
 public virtual void DestroyPoolFactory(int instanceID)
 {
     if (m_poolFactories.ContainsKey(instanceID))
     {
         GameObject gameObject = m_poolFactories[instanceID].gameObject;
         GameObjectFactory.Destroy(gameObject);
         gameObject = null;
     }
     m_poolFactories.Remove(instanceID);
 }
예제 #11
0
    public override void OnAppEnd()
    {
        DestroyRootObject();

        if (m_setting != null)
        {
            GameObjectFactory.DestroyComponent(m_setting);
            m_setting = null;
        }
    }
예제 #12
0
 public AbstractScene(SceneManager manager, GameObjectFactory<string> resourceFactory, GameObjectFinder finder, AbstractInput input)
 {
     sceneManager = manager;
     this.resourceFactory = resourceFactory;
     this.gameObjectFinder = finder;
     this.input = input;
     completed = false;
     permitUnloadResources = true;
     camera = Camera.main;
 }
예제 #13
0
        public MapEditor(GameWindow window, ClientNetworking client, CannonManager cannonManager, List <CannonGroups> cannonGroups, int screenconfiguration)
        {
            factory = GameObjectFactory.Instance;

            this.window              = window;
            this.client              = client;
            this.cannonManager       = cannonManager;
            this.cannonGroups        = cannonGroups;
            this.screenconfiguration = screenconfiguration;
        }
예제 #14
0
        /// <summary>
        /// Sets up default ambient and a single diffuse light for the scene, adds a cube at Vector3.Zero. For scene testing at the start of a project.
        /// </summary>
        public static void SetUpTestCubeAndLighting()
        {
            SystemCore.ActiveScene.SetUpBasicAmbientAndKey();
            ProceduralCube cube = new ProceduralCube();

            cube.SetColor(Color.OrangeRed);
            GameObject.GameObject testObject = GameObjectFactory.CreateRenderableGameObjectFromShape(cube, EffectLoader.LoadSM5Effect("flatshaded"));
            testObject.AddComponent(new RotatorComponent(Vector3.Up, 0.0001f));
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(testObject);
        }
예제 #15
0
    //public GameObject circleCursorPrefab;

    #endregion

    void Awake()
    {
        Debug.Log("BuildController.Awake");
        IoC.RegisterInstance(this);

        _objectFactory     = IoC.Get <GameObjectFactory>();
        _resouceCollection = new ResourceCollection("Objects");

        CreatePrefabs();
    }
예제 #16
0
    private void Awake()
    {
        GameDirector director = GameDirector.getInstance();

        director.currentSceneController = this;
        mf            = Singleton <GameObjectFactory> .Instance;
        player        = mf.getPlayer();
        cameraControl = GetComponent <MainCameraControl>();
        cameraControl.setTarget(player.transform);
    }
예제 #17
0
        public void StrengthShouldBeCorrect(string id, decimal expected)
        {
            // Arrange
            var pos = new Pos2D(42, 42);

            // Act
            var obj = GameObjectFactory.CreateActor(id, pos);

            // Assert
            obj.EffectiveStrength.ShouldBe(expected);
        }
        public void CustomShouldProcessCustomLogicTest()
        {
            var targetName = "key name for GameObject";
            var gameObject = GameObjectFactory.New()
                             .Custom(go => go.name = targetName)
                             .Build();

            Assert.AreEqual(targetName, gameObject.name);

            Utilities.Object.AutoDestroy(gameObject);
        }
예제 #19
0
        // выстрел снарядом
        public virtual GunBullet GunFire()
        {
            if (GunBulletCount > 0)
            {
                GunBulletCount--;

                return(GameObjectFactory.CreateGunBullet(this));
            }

            return(null);
        }
예제 #20
0
    public static TextCollider2D createTextCollider2D(string text, Transform parent, Vector3 position)
    {
        GameObject go = GameObjectFactory.createGameObject(text, parent);

        go.transform.Translate(position);
        TextCollider2D tc = go.AddComponent <TextCollider2D>();

        tc.Text = text;

        return(tc);
    }
예제 #21
0
        private SunManager()
        {
            factory = GameObjectFactory.Instance;

            rand = new Random(System.Environment.TickCount);

            this.sun = factory.Create((int)GameObjectTypes.SUN, new Vector2(GameWorld.WorldWidth / 2, -800), "sun", Vector2.Zero, 0f, 0f, 0f, 256);
            factory.Objects[sun].sprite.Location -= new Vector2(factory.Objects[sun].sprite.BoundingBoxRect.Width / 2, 0);
            defaultLocation = factory.Objects[sun].sprite.Location;
            factory.Objects[sun].saveable = false;
        }
        public void CreateDecelerationArea_InputParametersAreSame()
        {
            var player = GameObjectFactory.CreatePlayer(
                new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector2(2, 0.5f),
                new ControlSettings(Keys.W, Keys.S, Keys.A, Keys.D, Keys.Space, Keys.C));

            var gunBullet = GameObjectFactory.CreateGunBullet(player);

            Assert.AreEqual(new Vector2(2.25f, 0.375f), gunBullet.Position);
        }
        public void CreateDeceleratingDecoratot_InputParametersAreSame()
        {
            var player = GameObjectFactory.CreatePlayer(
                new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector2(2, 0.5f),
                new ControlSettings(Keys.W, Keys.S, Keys.A, Keys.D, Keys.Space, Keys.C));

            var deceleratingDecorator = GameObjectFactory.CreateDeceleratingDecorator(player);

            Assert.AreEqual(player.Position, deceleratingDecorator.Position);
        }
예제 #24
0
 private Func <GameObject> CreateRingFactory(GameObject _ringmeshPrefab, int ringScale)
 {
     return(GameObjectFactory.FromPrefab(_prefab, turnOff: true)
            .Adapt(g => {
         g.ReplaceChild("RingMesh", Instantiate(_ringmeshPrefab));
         g.FindInChildren("RingInner").transform.localScale *= ringScale;
         var s = g.AddComponent <SphereCollider>();
         s.radius = 2.9f * ringScale;
     })
            .TurnOn());
 }
예제 #25
0
        public void BehaviorSystemShouldHaveSecurityMeleePlayerWhenAdjacent()
        {
            // Arrange
            var actor = GameObjectFactory.CreateActor(Actors.SecurityAgent, Player.Pos.GetNeighbor(MoveDirection.Left));

            // Act
            var result = AI.ProcessActorTurn(actor);

            // Assert
            result.SelectedBehavior.ShouldBe(Behaviors.Melee);
        }
예제 #26
0
        public void LootTierShouldBeCorrect(string id, Rarity expected)
        {
            // Arrange
            var pos = new Pos2D(42, 42);

            // Act
            var obj = GameObjectFactory.CreateActor(id, pos);

            // Assert
            obj.LootRarity.ShouldBe(expected);
        }
예제 #27
0
 private void Update()
 {
     if (this.transform.position.y < 0 && this.gameObject.activeSelf)
     {
         GameObjectFactory mf        = Singleton <GameObjectFactory> .Instance;
         ParticleSystem    explosion = mf.getPs();
         explosion.transform.position = transform.position;
         explosion.Play();
         mf.recycleBullet(this.gameObject);
     }
 }
        public void SetUp()
        {
            binder = new Container();
            binder.RegisterTransient <ITestInterface, TestClass>();
            factory = new GameObjectFactory(binder);
            sw      = new Stopwatch();
            prefab  = new GameObject();
            prefab.AddComponent <TestMono>();

            instances = new GameObject[500000];
        }
예제 #29
0
        public BigMouthAnimator(float startTime, GameObjectFactory<string> resourceFactory)
            : base(0.25f, 0, startTime)
        {
            var mouthLeftGameObject = resourceFactory.Create("SceneFive/MouthLeft");
            mouthLeft = mouthLeftGameObject.GetComponent<Sprite>();
            mouthLeft.setWorldPosition(-29.5f, -56f, -5f);

            var mouthRightGameObject = resourceFactory.Create("SceneFive/MouthRight");
            mouthRight = mouthRightGameObject.GetComponent<Sprite>();
            mouthRight.setWorldPosition(10f, -56f, -5f);
        }
예제 #30
0
        // выстрел мнгновенным снарядом
        public virtual MiniGunBullet MiniGunFire()
        {
            if (MiniGunBulletCount > 0)
            {
                MiniGunBulletCount--;

                return(GameObjectFactory.CreateMiniGunBullet(this));
            }

            return(null);
        }
예제 #31
0
파일: MenuDemo.cs 프로젝트: sjb8100/C3DE
        public override void Initialize()
        {
            base.Initialize();

            GUI.Skin = DemoGame.CreateSkin(Application.Content, false);

            var cameraGo = GameObjectFactory.CreateCamera();

            cameraGo.AddComponent <MenuBehaviour>();
            Add(cameraGo);
        }
예제 #32
0
        public void Seed(GameObjectCollection scene)
        {
            var prov = new CameraProvider();

            prov.Camera.Fov          = MathUtil.DegreesToRadians(90);
            prov.Camera.DrawDistance = 100;
            prov.Camera.NearDistance = 0.001f;
            prov.Camera.Position     = new Vector3(0, 0, -20);
            prov.Camera.Rotation     = Quaternion.RotationLookAtLH(Vector3.ForwardLH, Vector3.Up);

            //var tmp = MeshLoader.LoadScene(@"Volkswagen.fbx");

            //var go = GameObjectFactory.Create(new FbxObjectCreator(@"3_cubes (3).fbx"));
            //var go = GameObjectFactory.Create(new FbxObjectCreator(@"ZF_YUP.fbx"));

            //var go = new GameObject();

            /*var tmp = MeshLoader.LoadScene(@"personfbx_-Y_Z.fbx");
             *
             * go.Children.Add(new GameObject());
             * go.Children.Add(new GameObject());
             * go.Children.Add(new GameObject());
             *
             * go.Children[0].AddComponent<MeshRenderer>().Initialize(tmp[0].NodeMeshes[0], "vx1", "px1");
             * go.Children[1].AddComponent<MeshRenderer>().Initialize(tmp[1].NodeMeshes[0], "vx1", "px1");
             * go.Children[2].AddComponent<MeshRenderer>().Initialize(tmp[2].NodeMeshes[0], "vx1", "px1");
             *
             * go.Children[0].Position = tmp[0].Position;
             * go.Children[0].Rotation = tmp[0].Rotation;
             * go.Children[0].Scale = tmp[0].Scale;
             *
             * go.Children[1].Position = tmp[1].Position;
             * go.Children[1].Rotation = tmp[1].Rotation;
             * go.Children[1].Scale = tmp[1].Scale;
             *
             * go.Children[2].Position = tmp[2].Position;
             * go.Children[2].Rotation = tmp[2].Rotation;
             * go.Children[2].Scale = tmp[2].Scale;*/
            //personfbx_-Y_Z.fbx
            var light = new GameObject();
            var dir   = light.AddComponent <DirectionLight>();

            dir.Color     = Color3.White;
            dir.Direction = Vector3.ForwardLH;
            scene.Add(light);

            var go = GameObjectFactory.CreateAndRegister(new FbxObjectCreator(@"virt_ice_scene.fbx"));

            //go.Scale = new Vector3(0.1f);
            go.AddScript <TestScript>();

            //var meshRend = go.Children["Стол"].GetComponent<MeshRenderer>();
            //go.GetComponent<Rigidbody>().TriggerEnter += (o, x) => System.Console.WriteLine("trigger");
        }
예제 #33
0
    private GameObject createChild()
    {
        GameObject go = GameObjectFactory.createGameObject("Int", this.transform);

        go.layer = LayerMask.NameToLayer("Parameter");
        TextMesh       textMesh     = go.AddComponent <TextMesh> ();
        TextCollider2D textCollider = go.AddComponent <TextCollider2D>();

        textCollider.TextMesh = textMesh;
        return(go);
    }
예제 #34
0
        protected override void SetupScene()
        {
            m_Terrain.GetComponent <MeshRenderer>().Material.MainTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock");

            // Lava
            var lavaTexture = Application.Content.Load <Texture2D>("Textures/lava_texture");
            var lavaNormal  = Application.Content.Load <Texture2D>("Textures/lava_bump");
            var lava        = GameObjectFactory.CreateLava(lavaTexture, lavaNormal, new Vector3(m_Terrain.Width * 0.5f));

            Add(lava);
        }
        void SetupEnginesAndEntities()
        {
            _enginesRoot = new EnginesRoot(new UnitySumbmissionEntityViewScheduler());

            _entityFactory = _enginesRoot.GenerateEntityFactory();
            var entityFunctions = _enginesRoot.GenerateEntityFunctions();

            GameObjectFactory factory = new GameObjectFactory();

            Sequencer turnSequence = new Sequencer();

            LocalUserMovementEngine localUserMovementEngine = new LocalUserMovementEngine(turnSequence);
            TurnEngine           turnEngine           = new TurnEngine(turnSequence);
            AIUserMovementEngine aiUserMovementEngine = new AIUserMovementEngine(turnSequence);
            TurnResolutionEngine turnResolutionEngine = new TurnResolutionEngine();

            turnSequence.SetSequence(
                new Steps
            {
                {
                    localUserMovementEngine,
                    new To
                    {
                        turnEngine
                    }
                },
                {
                    turnEngine,
                    new To
                    {
                        {
                            0, new IStep[]
                            {
                                aiUserMovementEngine
                            }
                        },
                        { 1, new IStep[] { turnResolutionEngine } }
                    }
                },
                {
                    aiUserMovementEngine,
                    new To
                    {
                        turnEngine
                    }
                }
            }
                );

            _enginesRoot.AddEngine(localUserMovementEngine);
            _enginesRoot.AddEngine(turnEngine);
            _enginesRoot.AddEngine(aiUserMovementEngine);
            _enginesRoot.AddEngine(turnResolutionEngine);
        }
	public void setFactoryDependency(GameObjectFactory dependency){
		this.factory = dependency;
	}
예제 #37
0
 public void Initialize(GameObjectFactory gameObjectFactory)
 {
     _bg = gameObjectFactory.getBackground("background");
 }
예제 #38
0
 public BigHeadProp(GameObjectFactory<string> resourceFactory)
 {
     this.resourceFactory = resourceFactory;
 }
 public MissileController(GameObjectFactory<Missile> missileFactory)
 {
     _missileFactory = missileFactory;
 }
 public DitheredBlueBackground(GameObjectFactory<string> resourceFactory)
 {
     this.resourceFactory = resourceFactory;
 }
예제 #41
0
 public LipsAppear(GameObjectFactory<string> resourceFactory)
     : base(0.5f)
 {
     lips = resourceFactory.Create("SceneFive/Lips");
     lips.GetComponent<Sprite>().setWorldPosition(-60f, -50f, -10f);
     lips.SetActive(false);
 }
예제 #42
0
 public HospitalRoom(GameObjectFactory<string> resourceFactory, Camera camera)
 {
     this.resourceFactory = resourceFactory;
     this.camera = camera;
 }