Material GetMaterial(string textureName, PlantPart plantPart) { Debug.Log("Get Mat with '" + textureName + "'"); if (textureName == null || textureName == "") { return(defaultMaterial); } if (plantPart == PlantPart.Trunk || plantPart == PlantPart.Branch || plantPart == PlantPart.SubBranch) { return(plantMaterials [materialnNamesToIndexes [0] [textureName]]); } else if (plantPart == PlantPart.Leaf) { return(leafMaterials [materialnNamesToIndexes [1] [textureName]]); } else if (plantPart == PlantPart.Flower) { return(flowerMaterials [materialnNamesToIndexes [2] [textureName]]); } else { return(fruitMaterials [materialnNamesToIndexes [3] [textureName]]); } }
public void UpdatePlantStats() { foreach (PlantPart part in plantParts) { growthPotential -= part.metabolism; growthPotential += part.fotosynthesis; // growthPotential += part.mineralAbsorption; growthPotential = Mathf.Clamp(growthPotential, 0, 1); water -= part.waterEvaporation * WeatherManager.instance.luminosity; water += part.waterAbsorption * WeatherManager.instance.soilHumidity; water = Mathf.Clamp(water, 0, 1); } if (water < 0.3) { PlantPart leaf = ChooseRandomUnshriveledLeaf(); if (leaf != null) { leaf.IsSchriveled = true; unshriveledLeaves.Remove(leaf); } } Debug.Log("growth potential: " + growthPotential); Debug.Log("water: " + water); }
public void UpdatePlant(string propertyName, object value, PlantPart pp) { //Debug.Log (propertyName); switch (pp) { case PlantPart.Trunk: typeof(Plant).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedPlant, value, null); break; case PlantPart.Branch: typeof(Plant).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedBranch, value, null); break; case PlantPart.SubBranch: typeof(Plant).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedSubBranch, value, null); break; case PlantPart.Leaf: typeof(Leaf).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedLeaf, value, null); break; case PlantPart.Flower: typeof(Flower).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedFlower, value, null); break; case PlantPart.Fruit: typeof(Fruit).GetProperty(propertyName).SetValue(plantPartPanelManager.targetedFruit, value, null); break; } plantPartPanelManager.targetedPlant.InitializePlant(); }
public void SelectSubBranch() { lastSelected.interactable = true; lastSelected = subBranchButton; selection = PlantPart.SubBranch; lastSelected.interactable = false; }
public void SelectTrunk() { lastSelected.interactable = true; lastSelected = trunkButton; selection = PlantPart.Trunk; lastSelected.interactable = false; }
public void Initialize() { lastSelected = trunkButton; selection = PlantPart.Trunk; trunkButton.interactable = false; branchButton.interactable = true; subBranchButton.interactable = true; }
public PlantPart ChooseRandomUnshriveledLeaf() { if (unshriveledLeaves.Count > 0) { PlantPart leaf = unshriveledLeaves[Random.Range(0, unshriveledLeaves.Count)]; return(leaf); } else { return(null); } }
public void ForceSelect(PlantPart part) { selection = part; switch (part) { case PlantPart.Trunk: SelectTrunk(); return; case PlantPart.Branch: SelectBranch(); return; case PlantPart.SubBranch: SelectSubBranch(); return; } }
public void Grow() { GameObject newPartPrefab = PlantManager.instance.GetPartPrefab(generatedType); PlantPart part = Instantiate( newPartPrefab, transform.position, transform.rotation = Quaternion.Euler(0, 0, angle), //transform.parent PlantManager.instance.transform ).GetComponent <PlantPart>(); part.yScaleFactor = Mathf.Lerp(0.6f, 1.2f, PlantManager.instance.growthPotential); //part.xScaleFactor =Mathf.Lerp(1.4f, 0.8f, PlantManager.instance.water); PlantManager.instance.GrowPart(newPartPrefab.GetComponent <PlantPart>()); Destroy(); }
public void Initialize(string textureName, Texture texture, PlantPart plantPart, PlantCreatorMaterialManager PCMM, int index) { this.name = textureName; this.index = index; this.plantPart = plantPart; rawImage.texture = texture; this.textureName.text = DisplayParameter.NicifyName(textureName); plantCreatorMaterialManager = PCMM; if (plantPart == PlantPart.Leaf) { rawImage.rectTransform.rotation = Quaternion.Euler(0f, 0f, 90f); } if (plantPart == PlantPart.Flower) { rawImage.rectTransform.sizeDelta = new Vector2(rawImage.rectTransform.sizeDelta.x, rawImage.rectTransform.sizeDelta.y * 2f); rawImage.rectTransform.localPosition = new Vector3(0f, 107f, 0f); } }
public void GrowPart(PlantPart part) { growthPotential = Mathf.Clamp(growthPotential - part.buildCost, 0, 1); plantParts.Add(part); NextTimeStep(); }
public void ChangeTexture(string name, PlantPart pp, bool forceInit = false) { if (forceInit) { plantPartSelector.ForceSelect(pp); pp = PlantPart.Trunk; } int index = -1; Debug.Log("TextureName = " + name); switch (pp) { case PlantPart.Trunk: switch (plantPartSelector.SelectedPlantPart) { case PlantPart.Trunk: if (name == null || name == "") { plantMat.mainTexture = defaultMaterial.mainTexture; plantMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [0] [name]; plantMat.mainTexture = plantMaterials [index].albedo; plantMat.SetTexture("_BumpMap", plantMaterials [index].albedo); trunkMatName = name; break; case PlantPart.Branch: if (name == null || name == "") { branchMat.mainTexture = defaultMaterial.mainTexture; branchMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [0] [name]; branchMat.mainTexture = plantMaterials [index].albedo; branchMat.SetTexture("_BumpMap", plantMaterials [index].albedo); branchMatName = name; break; case PlantPart.SubBranch: if (name == null || name == "") { subBranchMat.mainTexture = defaultMaterial.mainTexture; subBranchMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [0] [name]; subBranchMat.mainTexture = plantMaterials [index].albedo; subBranchMat.SetTexture("_BumpMap", plantMaterials [index].albedo); subBranchMatName = name; break; } break; case PlantPart.Leaf: if (name == null || name == "") { leafMat.mainTexture = defaultMaterial.mainTexture; leafMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [1] [name]; leafMat.mainTexture = leafMaterials [index].albedo; leafMat.SetTexture("_BumpMap", leafMaterials [index].albedo); leafMatName = name; break; case PlantPart.Flower: if (name == null || name == "") { flowerMat.mainTexture = defaultMaterial.mainTexture; flowerMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [2][name]; flowerMat.mainTexture = flowerMaterials [index].albedo; flowerMat.SetTexture("_BumpMap", flowerMaterials [index].albedo); flowerMatName = name; break; case PlantPart.Fruit: if (name == null || name == "") { fruitMat.mainTexture = defaultMaterial.mainTexture; fruitMat.SetTexture("_BumpMap", defaultMaterial.GetTexture("_BumpMap")); return; } index = materialnNamesToIndexes [3] [name]; fruitMat.mainTexture = fruitMaterials [index].albedo; fruitMat.SetTexture("_BumpMap", fruitMaterials [index].normal); fruitMatName = name; break; } }