public override void OnCreated(AsgardBase instance, Entity entity) { var world = instance.LookupSystem<Midgard>(); var manager = world.EntityManager; var body = world.CreateComponent(entity, BodyDef).Body; CircleShape shape = new CircleShape(1, 1); var fix = body.CreateFixture(shape); fix.Restitution = 1; fix.Friction = 1; }
internal static void Init(AsgardBase instance) { _instance = instance; _manager = instance.EntityManager; var orderedList = _rawLookupTypes.OrderBy(t => { return t.ToString().GetHashCode(); }); ushort index = 0; foreach(var item in orderedList) { _typeLookup[index] = item; _typeLookupReverse[item] = index; index++; } }
private void LoadCollisions(AsgardBase Base, TiledMap map) { #region build collision world var viewMap = map; var midgard = Base.LookupSystem<Midgard>(); var world = midgard.GetWorld(); var layer = viewMap.Layers.Last() as TiledTileLayer; { var layerField = typeof(TiledMap).GetField("_layers", BindingFlags.NonPublic | BindingFlags.Instance); List<TiledLayer> layers = layerField.GetValue(viewMap) as List<TiledLayer>; layers.Remove(layer); } for (var y = 0; y < layer.Height; y++) { for (var x = 0; x < layer.Width; x++) { var tile = layer.GetTile(x, y); if (tile.Id == 1702)// hack { var xTile = tile.X; var yTile = tile.Y; Vector2 centerPoint = new Vector2((xTile * (viewMap.TileWidth - 1)) + ((viewMap.TileWidth - 1) / 2), (yTile * (viewMap.TileHeight - 1)) + ((viewMap.TileHeight - 1) / 2)); Vector2 upperLeftPos = new Vector2(xTile * (viewMap.TileWidth - 1), (yTile) * (viewMap.TileHeight - 1)); var body = BodyFactory.CreateRectangle(world, (viewMap.TileWidth * _worldfactor) - 0.01f, (viewMap.TileHeight * _worldfactor) - 0.01f, 1.0f); body.Restitution = 1f; body.Position = new Vector2( centerPoint.X * _worldfactor, centerPoint.Y * _worldfactor); body.CollisionCategories = FarseerPhysics.Dynamics.Category.Cat1; body.CollidesWith = FarseerPhysics.Dynamics.Category.Cat2; } } } #endregion }
public override void OnCreated(AsgardBase instance, Entity entity) { var strData = StringData.Value.Split(','); TileData = strData.Select(s => Convert.ToInt32(s)).ToArray(); }
public void Load(AsgardBase Base, TiledMap map) { Width = map.Width; Height = map.Height; TileWidth = map.TileWidth; TileHeight = map.TileHeight; FirstId = 1; var layers = map.Layers.ToList(); if (layers.Count < 5) return; Layer1 = new LayerData(layers[0] as TiledTileLayer); Layer2 = new LayerData(layers[1] as TiledTileLayer); Layer3 = new LayerData(layers[2] as TiledTileLayer); Layer4 = new LayerData(layers[3] as TiledTileLayer); Layer5 = new LayerData(layers[4] as TiledTileLayer); LoadCollisions(Base, map); }
public override void OnCreated(AsgardBase instance, Entity entity) { var mapComponent = entity.GetComponent<MapComponent>(); mapComponent.Map = new TiledMap(mapComponent.Device, Width, Height, TileWidth, TileHeight); mapComponent.Map.CreateTileset(mapComponent.Texture, FirstId, TileWidth, TileHeight, 1, 1); mapComponent.Map.CreateTileLayer("1", Layer1.Value.Width, Layer1.Value.Height, Layer1.Value.TileData); mapComponent.Map.CreateTileLayer("2", Layer2.Value.Width, Layer2.Value.Height, Layer2.Value.TileData); mapComponent.Map.CreateTileLayer("3", Layer3.Value.Width, Layer3.Value.Height, Layer3.Value.TileData); mapComponent.Map.CreateTileLayer("4", Layer4.Value.Width, Layer4.Value.Height, Layer4.Value.TileData); mapComponent.Map.CreateTileLayer("5", Layer5.Value.Width, Layer5.Value.Height, Layer5.Value.TileData); LoadCollisions(instance, mapComponent.Map); }
public override void OnCreated(AsgardBase instance, Entity entity) { }
public AsgardModule(AsgardBase server) { this.ValueType = JSValueType.Object; _instance = server; Value = Wrap(_instance); }
public EntityModule(AsgardBase server) { _instance = server; }
public override void OnCreated(AsgardBase instance, Entity entity) { var text = Content.Load<Texture2D>("roguelikeChar_transparent"); TextureRegion2D region = new TextureRegion2D(text, 0, 0, 16, 16); _sprite = new Sprite(region); _sprite.Scale = new Vector2(1, 1); _owner = entity; var midgard = instance.LookupSystem<Midgard>(); CreatePhysics(midgard, entity, false); }
public override void OnDestroyed(AsgardBase instance, Entity entity, bool destoryEntity=true) { var midgard = instance.LookupSystem<Midgard>(); var phyComp = entity.GetComponent<Physics2dComponent>(); if (phyComp != null && phyComp.Body != null) { midgard.DeleteBody(phyComp); } ObjectMapper.DestroyEntity(entity, destoryEntity); }