Example #1
0
 public void Register(IExtensionLoader extensionLoader)
 {
     extensionLoader.RegisterEntityExtender <Player>((p) =>
     {
         p.Components.AddComponent(new ControllableComponent());
         p.Components.AddComponent(new HeadComponent()
         {
             Offset = new Vector3(0, 0, 3.2f)
         });
         p.Components.AddComponent(new InventoryComponent());
         p.Components.AddComponent(new ToolBarComponent());
     });
 }
Example #2
0
        public void Register(IExtensionLoader extensionLoader)
        {
            foreach (var t in Assembly.GetExecutingAssembly().GetTypes().Where(
                         t => !t.IsAbstract && typeof(IDefinition).IsAssignableFrom(t)))
            {
                extensionLoader.RegisterDefinition((IDefinition)Activator.CreateInstance(t));
            }

            extensionLoader.RegisterMapGenerator(new ComplexPlanetGenerator());

            extensionLoader.RegisterMapPopulator(new TreePopulator());
            extensionLoader.RegisterMapPopulator(new WauziPopulator());

            extensionLoader.RegisterEntity <WauziEntity>();
            extensionLoader.RegisterDefaultEntityExtender <WauziEntity>();

            extensionLoader.RegisterEntityExtender <Player>((p) =>
            {
                var posComponent = new PositionComponent {
                    Position = new Coordinate(0, new Index3(0, 0, 200), new Vector3(0, 0, 0))
                };

                p.Components.AddComponent(posComponent);
                p.Components.AddComponent(new BodyComponent()
                {
                    Mass = 50f, Height = 3.5f, Radius = 0.75f
                });
                p.Components.AddComponent(new BodyPowerComponent()
                {
                    Power = 600f, JumpTime = 120
                });
                p.Components.AddComponent(new GravityComponent());
                p.Components.AddComponent(new MoveableComponent());
                p.Components.AddComponent(new BoxCollisionComponent());
                p.Components.AddComponent(new EntityCollisionComponent());

                p.Components.AddComponent(new LocalChunkCacheComponent(posComponent.Planet.GlobalChunkCache, 4, 2));
            });

            extensionLoader.RegisterSimulationExtender((s) =>
            {
                s.Components.AddComponent(new WattMoverComponent());
                s.Components.AddComponent(new NewtonGravitatorComponent());
                s.Components.AddComponent(new ForceAggregatorComponent());
                s.Components.AddComponent(new PowerAggregatorComponent());
                s.Components.AddComponent(new AccelerationComponent());
                s.Components.AddComponent(new MoveComponent());
                s.Components.AddComponent(new BlockInteractionComponent(s));
                //TODO: unschön
            });
        }