public virtual void FillPlayerInventory(Inventory inventory) { foreach (ItemDefinition itemDefinition in world.itemManager.itemDefinitions) { if (itemDefinition.type != CubeWorld.World.Objects.CWDefinition.DefinitionType.ItemTile) { Item item = new Item(world, itemDefinition, -1); InventoryEntry ie = new InventoryEntry(); ie.position = 0; ie.quantity = 1; ie.cwobject = item; inventory.entries.Add(ie); } } foreach (TileDefinition tileDefinition in world.tileManager.tileDefinitions) { if (tileDefinition.tileType != TileDefinition.EMPTY_TILE_TYPE) { DynamicTile dynamicTile = new DynamicTile(world, tileDefinition, -1); InventoryEntry ie = new InventoryEntry(); ie.position = 0; ie.quantity = 10; ie.cwobject = dynamicTile; inventory.entries.Add(ie); } } }
public override void Update(float deltaTime) { if (deltaTime > MAX_DELTA_TIME) { deltaTime = MAX_DELTA_TIME; } Vector3 vectorToPlayer = item.position - (item.world.avatarManager.player.position + new Vector3(0, Player.HEAD_POSITION * 0.5f, 0)); float distanceToPlayer = vectorToPlayer.magnitude; if (distanceToPlayer < PLAYER_CATCH_DISTANCE) { CWObject objectToAdd = this.item; if (objectToAdd.definition.type == CWDefinition.DefinitionType.ItemTile) { objectToAdd = new DynamicTile(item.world, ((ItemTileDefinition)item.definition).tileDefinition, -1); } if (item.world.avatarManager.player.inventory.Add(objectToAdd)) { item.world.itemManager.RemoveItem(item); } } else if (distanceToPlayer < PLAYER_ATTRACT_DISTANCE) { Vector3 dirToPlayer = vectorToPlayer.normalized; item.position -= dirToPlayer * MOVE_SPEED * deltaTime; } }
public GameObject CreateTileGameObject(DynamicTile tile) { GameObject g = new GameObject(); TileUnity tileUnity = (TileUnity)g.AddComponent(typeof(TileUnity)); tileUnity.gameManagerUnity = gameManagerUnity; tileUnity.tile = tile; unityTiles.Add(tileUnity); return g; }
public void Load(System.IO.BinaryReader br) { entries.Clear(); int n = br.ReadInt32(); for (int i = 0; i < n; i++) { string id = br.ReadString(); int position = br.ReadInt32(); int quantity = br.ReadInt32(); TileDefinition tileDefinition = owner.world.tileManager.GetTileDefinitionById(id); CWObject cwobject = null; if (tileDefinition != null) { //It's a tile DynamicTile dynamicTile = new DynamicTile(owner.world, tileDefinition, -1); cwobject = dynamicTile; } else { ItemDefinition itemDefinition = owner.world.itemManager.GetItemDefinitionById(id); if (itemDefinition != null) { //It's an item Item item; if (itemDefinition.type == CubeWorld.World.Objects.CWDefinition.DefinitionType.ItemTile) { item = new ItemTile(owner.world, (ItemTileDefinition)itemDefinition, -1); } else { item = new Item(owner.world, itemDefinition, -1); } cwobject = item; } } cwobject.Load(br); InventoryEntry ie = new InventoryEntry(); ie.position = position; ie.quantity = quantity; ie.cwobject = cwobject; entries.Add(ie); } }
public GameObject CreateTileGameObject(DynamicTile tile) { GameObject g = new GameObject(); TileUnity tileUnity = (TileUnity)g.AddComponent(typeof(TileUnity)); tileUnity.gameManagerUnity = gameManagerUnity; tileUnity.tile = tile; unityTiles.Add(tileUnity); return(g); }
public override void Execute(TileManager tileManager, Tile tile, TilePosition pos) { pos += delta; if (tileManager.IsValidTile(pos)) { if (tileManager.GetTileDynamic(pos)) { DynamicTile dynamicTile = tileManager.GetDynamicTile(pos); tileManager.world.fxListener.PlayEffect(effectId, dynamicTile); } } }
private void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("DynamicTile")) { DynamicTile dynamicTile = other.GetComponent <DynamicTile>(); if (!dynamicTile.IsBeingGrabbed && !dynamicTile.IsTouchingBroken) { dynamicTile.IsTouchingBroken = true; Object.Destroy(other.gameObject, updateDelay); StartCoroutine(DelayedSpriteUpdate(updateDelay)); } } }
private void OnTriggerStay2D(Collider2D other) { if (other.CompareTag("DynamicTile")) { DynamicTile dynamicTile = other.GetComponent <DynamicTile>(); if (!dynamicTile.IsBeingGrabbed && !dynamicTile.IsTouchingBroken) { dynamicTile.IsTouchingBroken = true; Object.Destroy(other.gameObject); GetComponent <SpriteRenderer>().sprite = fixedSprite; GetComponent <Collider2D>().isTrigger = false; gameObject.tag = "FixedTile"; } } }
public override void Execute(TileManager tileManager, Tile tile, TilePosition pos) { pos += delta; if (tileManager.IsValidTile(pos)) { if (value == true) { tileManager.SetTileDynamic(pos, value, gravity, timeout); } else if (tileManager.GetTileDynamic(pos)) { //Call DynamicTile.MakeStatic because if the tile is inside it's update cycle //when this rule is executed, then the array of components would become invalid DynamicTile dynamicTile = tileManager.GetDynamicTile(pos); dynamicTile.MakeStatic(); } } }
protected override void OnRemovedFromObject() { tile = null; }
protected override void OnAddedToObject(CWObject cwobject) { tile = (DynamicTile)cwobject; }
protected override void Update() { movementVec.x = Input.GetAxis("Horizontal"); if (jumpState == JumpState.Grounded && !IsGrabbing && Input.GetButtonDown("Jump")) { jumpState = JumpState.PrepareToJump; } if (Input.GetButtonDown("Grab")) { if (!IsGrabbing && tileToGrab != null) { IsGrabbing = true; DynamicTile dynamicTileFix = tileToGrab.GetComponent <DynamicTile>(); if (dynamicTileFix != null) { dynamicTileFix.IsBeingGrabbed = true; } tileToGrab.transform.SetParent(horn.transform); tileToGrab.transform.localPosition = new Vector3((spriteRenderer.flipX ? -flipGrabOffset : 0.9f) * 0.1f, -0.05f); tileToGrab.transform.localScale -= new Vector3(onGrabScaleMod, onGrabScaleMod); var tileBody = tileToGrab.GetComponent <Rigidbody2D>(); tileBody.bodyType = RigidbodyType2D.Kinematic; } else if (IsGrabbing && tileToGrab != null) { IsGrabbing = false; DynamicTile dynamicTileFix = tileToGrab.GetComponent <DynamicTile>(); if (dynamicTileFix != null) { dynamicTileFix.IsBeingGrabbed = false; } tileToGrab.transform.SetParent(null); tileToGrab.transform.localScale += new Vector3(onGrabScaleMod, onGrabScaleMod); var tileBody = tileToGrab.GetComponent <Rigidbody2D>(); tileBody.bodyType = RigidbodyType2D.Dynamic; } } base.isGrabbing = IsGrabbing; switch (jumpState) { case JumpState.PrepareToJump: break; case JumpState.Jumping: if (!IsGrounded) { jumpState = JumpState.InFlight; } break; case JumpState.InFlight: if (IsGrounded) { jumpState = JumpState.Landed; } break; case JumpState.Landed: jumpState = JumpState.Grounded; break; } base.Update(); }
protected override void OnAddedToObject(CWObject cwobject) { tile = (DynamicTile) cwobject; }