public void addSeed(SeedItem seed) { if (seed.GetCount() > 0 && plantedSeed == null) { switch (seed.GetName()) { case "corn": plantedSeed = new Corn(content, Position, this, game); seed.Plant(); break; case "lettuce": plantedSeed = new Lettuce(content, Position, this, game); seed.Plant(); break; case "wheat": plantedSeed = new Wheat(content, Position, this, game); seed.Plant(); break; default: break; } } }
public override void BlockInteraction(Vector3i pos, Quaternion rot, VehicleComponent vehicle, Inventory inv = null) { if (inv == null) { return; } foreach (var offset in area) { SeedItem seed = inv.GroupedStacks.Where(x => x.Item is SeedItem).First().Item as SeedItem; var targetPos = (rot.RotateVector(offset) + pos).XYZi; Result authResult = AuthManager.IsAuthorized(targetPos, vehicle.Driver.User); if (authResult.Success) { if (World.GetBlock(targetPos + Vector3i.Down).Is <Tilled>() && World.GetBlock(targetPos).Is <Empty>()) { var changes = new InventoryChangeSet(inv, vehicle.Driver.User); changes.RemoveItem(seed.Type); IAtomicAction plantAction = PlayerActions.Plant.CreateAtomicAction(vehicle.Driver, targetPos, seed.Species); if (new MultiAtomicAction(changes, plantAction).TryApply()) { var plant = EcoSim.PlantSim.SpawnPlant(seed.Species, targetPos); plant.Tended = true; } } } } }
void MouseMethod() { if (Mouse.GetState().RightButton == ButtonState.Pressed && selectedSeed != null) { selectedSeed.Select(false); selectedSeed = null; } }
public void Clear(bool recycle = false) { nameText.text = string.Empty; Seed = null; if (recycle) { ObjectPool.Put(gameObject); } }
private void OnSeedUse(SeedItem seed) { if (selected.plant != null || !selected.isWatered || !selected.isTilled) { return; } DrawProgressBar(selected); selected.plant = seed.plant; EventManager.instance.OnConsumeItem(seed); }
// TODO: create atomic actions covering the case and utilize them. public override void BlockInteraction(Vector3i pos, Quaternion rot, VehicleComponent vehicle, Inventory inv = null) { if (inv == null) { return; } if (!this.enabled) { return; } foreach (var offset in area) { var stack = inv.GroupedStacks.Where(x => x.Item is SeedItem).FirstOrDefault(); if (stack == null) { return; } SeedItem seed = stack.Item as SeedItem; var targetPos = (rot.RotateVector(offset) + pos).XYZi; Result authResult = ServiceHolder <IAuthManager> .Obj.IsAuthorized(targetPos, vehicle.Driver.User, AccessType.ConsumerAccess, null); if (authResult.Success) { if (World.GetBlock(targetPos + Vector3i.Down).Is <Tilled>() && World.GetBlock(targetPos).Is <Empty>()) { var pack = new GameActionPack(); pack.AddGameAction(new PlantSeeds() { Species = seed.Species.GetType(), ActionLocation = targetPos, Citizen = vehicle.Driver.User, ToolUsed = this }); var changes = new InventoryChangeSet(inv, vehicle.Driver.User); changes.RemoveItem(seed.Type); pack.AddChangeSet(changes); if (pack.TryPerform()) { var plant = EcoSim.PlantSim.SpawnPlant(seed.Species, targetPos); plant.Tended = true; } } } } }
public void ShowDescription(SeedItem seed) { if (!seed) { HideDescription(); return; } descriptionWindow.alpha = 1; nameText.text = seed.Crop.Name; int amount = BackpackManager.Instance.GetAmount(seed); icon.SetItem(seed, amount > 0 ? amount.ToString() : null); StringBuilder str = new StringBuilder("占用田地空间:"); str.Append(seed.Crop.Size); str.Append("\n"); str.Append(CropInformation.CropSeasonString(seed.Crop.PlantSeason)); str.Append("\n"); str.Append("生长阶段:"); str.Append("\n"); for (int i = 0; i < seed.Crop.Stages.Count; i++) { CropStage stage = seed.Crop.Stages[i]; str.Append(ZetanUtility.ColorText(CropStage.CropStageName(stage.Stage), Color.yellow)); str.Append("持续"); str.Append(ZetanUtility.ColorText(stage.LastingDays.ToString(), Color.green)); str.Append("天"); if (stage.HarvestAble) { if (stage.RepeatTimes > 0) { str.Append(",可收割"); str.Append(ZetanUtility.ColorText(stage.RepeatTimes.ToString(), Color.green)); str.Append("次"); } else if (stage.RepeatTimes < 0) { str.Append(",可无限收割"); } } if (i != seed.Crop.Stages.Count - 1) { str.Append("\n"); } } description.text = str.ToString(); }
void PrepareSeed() { foreach (SeedItem seeds in inventory.seeds) { if (seeds.IsSelected() == false) { this.selectedSeed = null; } } foreach (SeedItem seeds in inventory.seeds) { if (seeds.IsSelected() && (seeds.GetCount() > 0)) { this.selectedSeed = seeds; } } }
public void CreateInvList() { SeedItem wheatSeed = new SeedItem(_content.Load <Texture2D>("seeds_wheat"), new Vector2(-100, -100), 100, 0, "wheat"); SeedItem lettuceSeed = new SeedItem(_content.Load <Texture2D>("seeds_lettuce"), new Vector2(-100, -100), 50, 0, "lettuce"); SeedItem cornSeed = new SeedItem(_content.Load <Texture2D>("seeds_corn"), new Vector2(-100, -100), 5, 0, "corn"); this.invList.Add(wheatSeed); this.invList.Add(lettuceSeed); this.invList.Add(cornSeed); LivestockItem cowItem = new LivestockItem(_content.Load <Texture2D>("cow"), new Vector2(-100, -100), 750, 0, "cow"); LivestockItem chickenItem = new LivestockItem(_content.Load <Texture2D>("chicken"), new Vector2(-100, -100), 300, 0, "chicken"); this.invList.Add(cowItem); this.invList.Add(chickenItem); TileItem tileItem = new TileItem(_content.Load <Texture2D>("Sprites/land"), new Vector2(), 10000, 0, "farmslot"); this.invList.Add(tileItem); }
public InventorySlot(ContentManager content, Vector2 position, SeedItem seeditem, float scale) : base(seeditem.GetTexture(), position, 1) { this.Position = position; this.seeditem = seeditem; this.scale = scale; this.isSeed = true; Texture2D buttonTexture = content.Load <Texture2D>("Button"); slotTexture = content.Load <Texture2D>("ItemSlot"); font = content.Load <SpriteFont>("defaultFont"); itemCount = content.Load <Texture2D>("itemCount"); this.buttonSfx = content.Load <SoundEffect>("Sound/selectionClick"); var buttonFont = content.Load <SpriteFont>("defaultFont"); selectButton = new Button(buttonTexture, buttonFont, this.Position + new Vector2(-30, 120), 1) { Text = "select", }; selectButton.Click += SelectButton_Click; }
void CreateInventory() { CropItem wheatItem = new CropItem(wheatSprite, new Vector2(-100, -100), 600, 0, "wheat", 600); SeedItem wheatSeed = new SeedItem(wheatSeedSprite, new Vector2(-100, -100), 100, 0, "wheat"); CropItem lettuceItem = new CropItem(lettuceSprite, new Vector2(-100, -100), 250, 0, "lettuce", 250); SeedItem lettuceSeed = new SeedItem(lettuceSeedSprite, new Vector2(-100, -100), 50, 0, "lettuce"); CropItem cornItem = new CropItem(cornSprite, new Vector2(-100, -100), 75, 0, "corn", 50); SeedItem cornSeed = new SeedItem(cornSeedSprite, new Vector2(-100, -100), 5, 0, "corn"); MeatItem cowItem = new MeatItem(cowSprite, new Vector2(-100, -100), 750, 0, "cow", 1150); MeatItem chickenItem = new MeatItem(chickenSprite, new Vector2(-100, -100), 300, 0, "chicken", 650); Inventory.Add(wheatItem); Inventory.Add(lettuceItem); Inventory.Add(cornItem); Inventory.Add(cowItem); Inventory.Add(chickenItem); seeds.Add(wheatSeed); seeds.Add(lettuceSeed); seeds.Add(cornSeed); }
void InitScrollView() { list = GameTableManager.Instance.GetTableList <SeedAndCubDataBase>(); if (list != null) { if (this.m_entityType == EntityType.EntityType_Plant)//Ö²Îï { list = list.FindAll((x) => { return(x.type == 0); }); } if (this.m_entityType == EntityType.EntityType_Animal) { list = list.FindAll((x) => { return(x.type == 1); });//¶¯ÎïÓ×áÌ } foreach (var db in list) { Transform itemTrans = m_grid_seedgrid.transform.Find(db.itemID.ToString()); if (itemTrans == null) { GameObject seedItem = NGUITools.AddChild(m_grid_seedgrid.gameObject, m_sprite_SeedItem.gameObject); if (seedItem != null) { seedItem.name = db.itemID.ToString(); itemTrans = seedItem.transform; } } itemTrans.gameObject.SetActive(true); SeedItem seed = itemTrans.GetComponent <SeedItem>(); if (seed == null) { seed = itemTrans.gameObject.AddComponent <SeedItem>(); } if (seed != null) { seed.InitSeedItem(db); } } } }
public void OnSeedUse(SeedItem seed) { SeedUse?.Invoke(seed); }
public void Init(SeedItem seed) { Seed = seed; nameText.text = Seed.name; }
public void ShowDescription(SeedItem seed) { }
private void GenerateSeedSlot(Vector2 position, SeedItem item) { InventorySlot newSlot = new InventorySlot(_content, position, item, 1f); components.Add(newSlot); }
public void LootSeed(Vector3 pos, Plant.Type type, float chance) { if (type == Plant.Type.None || type == Plant.Type.Withered || chance <= 0F) { return; } float p = 0F, r = 0F; if (type == Plant.Type.Aquabud) { r = 0.015F * (lootCnt[Plant.Type.Aquabud] - 15); r = Mathf.Clamp(r, 0F, 0.6F); if (Random.Range(0F, 1F) <= r) { type = Random.Range(0F, 2F) < 1F ? Plant.Type.Turret : Plant.Type.Bubble; } } if (type == Plant.Type.Goji) { r = 1 - Mathf.Pow(0.7F, lootCnt[Plant.Type.Goji]); if (lootCnt[Plant.Type.Goji] >= 5) { r = 1; } if (Random.Range(0F, 1F) <= r) { p = Random.Range(0F, 3F); if (p < 1F) { type = Plant.Type.Dragonfruit; } else if (p < 2F) { type = Plant.Type.Jujube; } else { type = Plant.Type.Persimmon; } } } if (type == Plant.Type.Mulberry) { r = 1 - Mathf.Pow(0.7F, lootCnt[Plant.Type.Mulberry]); if (lootCnt[Plant.Type.Mulberry] >= 5) { r = 1; } if (Random.Range(0F, 1F) <= r) { p = Random.Range(0F, 3F); if (p < 1F) { type = Plant.Type.Lychee; } else if (p < 2F) { type = Plant.Type.Cyanberry; } else { type = Plant.Type.Mango; } } } if (type == Plant.Type.Wisplum) { r = 1 - Mathf.Pow(0.6F, lootCnt[Plant.Type.Wisplum]); if (lootCnt[Plant.Type.Wisplum] >= 3) { r = 1; } if (Random.Range(0F, 1F) <= r) { type = Random.Range(0F, 2F) < 1F ? Plant.Type.Lime : Plant.Type.Cloudberry; } } lootChanceMultiplier[type] += chance * basicLootChance[type]; float rand = Random.Range(0F, 1F); if (rand <= lootChanceMultiplier[type] * chance) { SeedItem.Generate(pos, type); lootChanceMultiplier[type] = 1F; lootCnt[type]++; } }