public override void onAddedToScene() { var texture = scene.content.Load <Texture2D>("Images/ItemsObjects/treasureBox_small"); var subtexture = Subtexture.subtexturesFromAtlas(texture, 14, 14); animation = addComponent(new Sprite <TreasureBoxStates>(subtexture[0])); animation.setRenderLayer(GameLayerSetting.actorMoverLayer) .setLayerDepth(LayerDepthExt.caluelateLayerDepth(this.position.Y)); animation.addAnimation(TreasureBoxStates.Close, new SpriteAnimation(subtexture[0])); animation.addAnimation(TreasureBoxStates.Open, new SpriteAnimation(subtexture[1])); if (hasOpened) { animation.currentAnimation = TreasureBoxStates.Open; } else { animation.currentAnimation = TreasureBoxStates.Close; } animation.play(animation.currentAnimation); var rigidBody = addComponent <FSRigidBody>() .setBodyType(FarseerPhysics.Dynamics.BodyType.Dynamic); trigger = addComponent <SceneObjectTriggerComponent>(); trigger.setRadius(10) .setIsSensor(true); trigger.setCollisionCategories(CollisionSetting.ItemsCategory); trigger.setCollidesWith(CollisionSetting.playerCategory); trigger.onAdded += onAddedMethod; var eButtontexture = scene.content.Load <Texture2D>("Images/ItemsObjects/EButton"); eButtonSprite = addComponent(new Sprite(eButtontexture)); eButtonSprite.setLocalOffset(new Vector2(-14, -14 - eButtonSprite.height)); eButtonSprite.enabled = false; var openTexture = scene.content.Load <Texture2D>("Images/ItemsObjects/openFont"); openSprite = addComponent(new Sprite(openTexture)); openSprite.setLocalOffset(new Vector2(-14 + eButtonSprite.width * 2, -14 - eButtonSprite.height)); openSprite.enabled = false; }
public override void onAddedToScene() { base.onAddedToScene(); var eButtontexture = scene.content.Load <Texture2D>("Images/ItemsObjects/EButton"); eButtonSprite = addComponent(new Sprite(eButtontexture)); eButtonSprite.setLocalOffset(new Vector2(-14, -14 - eButtonSprite.height)); eButtonSprite.enabled = false; var searchTexture = scene.content.Load <Texture2D>("Images/ItemsObjects/searchFont"); searchSprite = addComponent(new Sprite(searchTexture)); searchSprite.setLocalOffset(new Vector2(-14 + eButtonSprite.width * 2, -14 - eButtonSprite.height)); searchSprite.enabled = false; var tiledMap = scene.content.Load <TiledMap>("TileMaps/MapObjects/Sign01"); var tiledMapComponent = addComponent(new TiledMapComponent(tiledMap)); tiledMapComponent.setLayersToRender(new string[] { "object" }); tiledMapComponent.setRenderLayer(GameLayerSetting.actorMoverLayer) .setLayerDepth(LayerDepthExt.caluelateLayerDepth(this.position.Y + 8)); var colliderObject = tiledMap.getObjectGroup("Collision"); var collision = colliderObject.objectWithName("collision"); var rigidBody = addComponent <FSRigidBody>() .setBodyType(FarseerPhysics.Dynamics.BodyType.Kinematic) ; Vertices vertices = new Vertices(collision.polyPoints); var collider = addComponent(new FSCollisionPolygon(vertices)); collider.setCollisionCategories(CollisionSetting.wallCategory); trigger = addComponent <SceneObjectTriggerComponent>(); trigger.setRadius(10) .setIsSensor(true); trigger.setCollisionCategories(CollisionSetting.ItemsCategory); trigger.setCollidesWith(CollisionSetting.playerCategory); trigger.onAdded += onAddedMethod; }
public override void onAddedToScene() { var texture = scene.content.Load <Texture2D>("TileMaps/MapTextures/objects"); var subtexture1 = new Subtexture(texture, new Rectangle(64, 48, 16, 16)); var subtexture2 = new Subtexture(texture, new Rectangle(64 + 16, 48, 16, 16)); var subtexture3 = new Subtexture(texture, new Rectangle(64 + 16 * 2, 48, 16, 16)); var subtexture4 = new Subtexture(texture, new Rectangle(64 + 16 * 3, 48, 16, 16)); var subtexture5 = new Subtexture(texture, new Rectangle(64 + 16 * 4, 48, 16, 16)); var subtexture6 = new Subtexture(texture, new Rectangle(64 + 16 * 5, 48, 16, 16)); var subtexture7 = new Subtexture(texture, new Rectangle(64 + 16 * 6, 48, 16, 16)); var subtexture8 = new Subtexture(texture, new Rectangle(64 + 16 * 7, 48, 16, 16)); var subtexture9 = new Subtexture(texture, new Rectangle(64 + 16 * 8, 48, 16, 16)); var subtexture10 = new Subtexture(texture, new Rectangle(64 + 16 * 9, 48, 16, 16)); var subtexture11 = new Subtexture(texture, new Rectangle(64 + 16 * 10, 48, 16, 16)); animations = addComponent(new Sprite <FireAnimation>(subtexture11)); animations.addAnimation(FireAnimation.Init, new SpriteAnimation(new List <Subtexture>() { subtexture11, subtexture10, subtexture9, subtexture8, }) { }); animations.addAnimation(FireAnimation.Fire, new SpriteAnimation(new List <Subtexture>() { subtexture7, subtexture6, subtexture5, subtexture4, subtexture3, subtexture2, subtexture1, }) { loop = false }); animations.onAnimationCompletedEvent += Animations_onAnimationCompletedEvent; addComponent <FSRigidBody>() .setBodyType(BodyType.Dynamic); trigger = addComponent <SceneObjectTriggerComponent>(); trigger.setRadius(5).setIsSensor(true); trigger.setCollisionCategories(CollisionSetting.enemyAttackCategory); trigger.setCollidesWith(CollisionSetting.unableColliderCategory); trigger.onAdded += () => { trigger.GetFixture().onCollision += (fixtureA, fixtureB, contact) => { var component = fixtureB.userData as Component; var actorProperty = component.getComponent <ActorPropertyComponent>(); if (actorProperty != null) { actorProperty.executeDamage?.Invoke(AttackTypes.Physics, 8); //var adir = component.entity.position - this.position; //adir.Normalize(); //actorProperty.entity.getComponent<FSRigidBody>().body.applyLinearImpulse(adir * FSConvert.displayToSim); } return(true); }; }; }