public float PlayGreeting() { float aniTime = 0; string aniName = Greeting + "_" + partType.ToString(); AnimationClip clip = item_animation.GetClip(aniName); if (clip != null) { aniTime = clip.length; item_animation.Play(aniName); } return(aniTime); }
private dynamic ReadDynamicValue(PartType part, PacketReader reader) { dynamic value = null; switch (part) { case PartType.Int16: value = reader.ReadLEInt16(); break; case PartType.Int32: value = reader.ReadLEInt32(); break; case PartType.Int64: value = reader.ReadLEInt64(); break; case PartType.Single: value = reader.ReadLESingle(); break; case PartType.FixedString: short l = reader.ReadLEInt16(); value = reader.ReadStringSafe(l); break; case PartType.DynamicString: value = reader.ReadStringSafe(); break; case PartType.Byte: value = reader.ReadByte(); break; case PartType.Boolean: value = reader.ReadBoolean(); break; default: MessageBox.Show("Undefined Segment Type Found - " + part.ToString()); break; } return(value); }
/// <summary> /// Trys to place a part with the given parameters /// </summary> /// <param name="type">The type of the part to place</param> /// <param name="direction">The direction of the part to place</param> /// <param name="rotation">The rotation of the part to place</param> /// <param name="position">The position, where the part should be placed</param> /// <returns>Whether the part has been successfully placed</returns> public bool AddPart(PartType type, PartDirection direction, PartRotation rotation, Vector3Int position) { bool canBePlaced = CanBePlaced(type, direction, rotation, position); if (!canBePlaced) { return(false); } else { GameObject newPartGameobject = (GameObject)Instantiate(partBuilding); parts.Add(newPartGameobject.GetComponent <PartBuilding>()); parts[parts.Count - 1].SetPosition(position); parts[parts.Count - 1].SetDirection(direction); parts[parts.Count - 1].SetRotation(rotation); parts[parts.Count - 1].SetPart(type); connectOverlapingConnectors(parts[parts.Count - 1]); Debug.Log("Added part: " + type.ToString() + " at: " + position.ToString()); return(true); } }
private async Task GetBestPartAsync(string addressInput, PartType partType, string attribute, string rarity) { var address = await GetFormattedAddress(addressInput); Inventory inv = await userUtils.GetInventory(address); var parts = inv.parts; var attr = attribute.ToLower().StartsWith('b') ? ConvertToTypeName(partType) : attribute; var partAttribute = GetPartAttribute(attr); if (partAttribute == PartAttribute.NONE) { MyEmbedBuilder.AddField("Attribute not found", attribute); MyEmbedBuilder.WithColor(Color.Red); } else { var partsByRarityChosen = partInfoUtils.GetPartsByRarity(rarity, parts); var partsByType = GetPartsByType(partsByRarityChosen, partType); var partWithBestAttribute = GetPartWithBestAttribute(partsByType, partAttribute); SetUpResponse(partWithBestAttribute, partAttribute); MyEmbedBuilder.WithTitle(ToSentenceCase($"Best {partType.ToString("G")} | {attribute}")); MyEmbedBuilder.WithColor(partInfoUtils.GetEmbedColorByRarity(partWithBestAttribute)); } await ReplyAsync(embed : MyEmbedBuilder.Build()); }
private string ConvertToTypeName(PartType partType) { foreach (string partAttr in Enum.GetNames(typeof(PartAttribute))) { if (partAttr.Contains(partType.ToString("G"))) { return(partAttr); } } return("NONE"); }
private Type GetTypeToCreate(PartType pt) { foreach (var part in parts) { if (part.Key.Contains(pt.ToString().ToLower())) { return(parts[part.Key]); } } return(null); }
private Sprite LoadCarPartSprite(PartType type) { var part = Vars.GetCarPart(type); if (part is null) { return(Resources.Load <GameObject>($"Prefabs/Parts/{type.ToString()}_disabled").GetComponent <Image>() .sprite); } var prefab = Resources.Load <GameObject>($"Prefabs/Parts/{part.PrefabName}"); return(prefab.GetComponent <Image>().sprite); }
/// <summary> /// 异步加载一个人物 /// </summary> /// <returns>The person object.</returns> /// <param name="part">Part.</param> public void GetPersonObjAsync(List <PartData> part, Action <GameObject> cb = null) { GameObject person = new GameObject("person"); for (int i = 0; i < part.Count; i++) { PartType partType = part[i].PType; if (partType == PartType.Pixels || partType == PartType.drawPixels) { continue; } Vector3 pos = new Vector3(part[i].Pos[0], part[i].Pos[1], part[i].Pos[2]); Vector3 scale = new Vector3(part[i].Scale[0], part[i].Scale[1], part[i].Scale[2]); string path = "Prefabs/display|display_item_" + partType.ToString().ToLower(); if (i == part.Count - 1) { //最后一个部位加载完,父节点要修改的!!!异步这块现在还没修改 GetOnePartAsync(path, person, pos, scale, part[i], (tmpPerson) => { Transform partParent = tmpPerson.transform; for (int j = 0; j < tmpPerson.transform.childCount; j++) { Transform t = tmpPerson.transform.GetChild(j); PartType type = t.GetComponent <DisplayPartItem>().partType; if (type == PartType.Body) { partParent = t.Find("img_item").transform; } else if (type == PartType.LeftEye || type == PartType.RightEye || type == PartType.Mouth || type == PartType.Hat || type == PartType.Hair || type == PartType.HeadWear) { t.SetParent(partParent); j--; } } curPerson = tmpPerson; GetListDiaplayItem(tmpPerson.transform); if (cb != null) { cb(tmpPerson); } }); } else { GetOnePartAsync(path, person, pos, scale, part[i], null); } } }
public void DefineBoxDetails(BoxType _type, PartType _part, Species _species = Species.UNKNOWN) { boxDetails.type = _type; boxDetails.species = _species; boxDetails.part = _part; string finalNamePart = _species.ToString().ToLower(); if (_part != PartType.UNKNOWN) { finalNamePart = _part.ToString().ToLower(); } boxDetails.boxTypeName = _type.ToString().Substring(0, 1) + finalNamePart; }
void Start() { boxDetails = new BoxDetails(); boxDetails.type = _type; boxDetails.part = _bodyPart; boxDetails.species = _species; string finalNamePart = _species.ToString().ToLower(); if (_bodyPart != PartType.UNKNOWN) { finalNamePart = _bodyPart.ToString().ToLower(); } boxDetails.boxTypeName = _type.ToString().Substring(0, 1) + finalNamePart; isEmpty = true; }
public override string ItemType() { itemtype = part_type.ToString(); return(itemtype); }
/// <summary> /// 同步获取一个人物并计算出最低点 /// </summary> /// <returns>The person object.</returns> /// <param name="part">Part.</param> public GameObject GetPersonObjWithFlag(PartDataWhole whole, out float minPosY) { float minY = float.MaxValue; List <PartData> part = whole.PartDataList; GameObject person = new GameObject("person"); Transform transBody = person.transform; Transform parentBody = null; GameObject parentObj = null; GameObject bodyRectTemp = null; if (whole.JoinType == JoinType.Animal) { string bodypath = "Prefabs/display|display_item_animalbody"; parentObj = UIHelper.instance.LoadPrefab(bodypath, person.transform, Vector3.zero, Vector3.one); parentBody = parentObj.transform.Find("img_item").transform; DisplayPartItem item = parentObj.gameObject.AddComponent <DisplayPartItem>(); item.partType = PartType.AnimalBody; } for (int i = 0; i < part.Count; i++) { PartType partType = part[i].PType; if (partType == PartType.Pixels || partType == PartType.drawPixels) { continue; } Vector3 pos = new Vector3(part[i].Pos[0], part[i].Pos[1], part[i].Pos[2]); Vector3 scale = new Vector3(part[i].Scale[0], part[i].Scale[1], part[i].Scale[2]); GameObject obj; Debug.Log(partType + " " + pos); string path = "Prefabs/display|display_item_" + partType.ToString().ToLower(); if (partType == PartType.LeftEye || partType == PartType.RightEye || partType == PartType.Mouth) { if (whole.JoinType == JoinType.Animal) { obj = UIHelper.instance.LoadPrefab(path, transBody, pos, scale); } else { obj = UIHelper.instance.LoadPrefab(path, person.transform, pos, scale); obj.transform.SetParent(transBody); } } else if (partType == PartType.Head || partType == PartType.TrueBody) { obj = UIHelper.instance.LoadPrefab(path, parentBody, pos, scale); if (bodyRectTemp == null) { bodyRectTemp = obj; } } else { obj = UIHelper.instance.LoadPrefab(path, person.transform, pos, scale); obj.transform.SetParent(transBody); } //给后面的节点指定父节点 if (partType == PartType.Head || partType == PartType.Body) { transBody = obj.transform.Find("img_item").transform; } //使用RawImage RawImage img = obj.transform.Find("img_item").GetComponent <RawImage>(); Texture2D t = new Texture2D(500, 500, TextureFormat.RGBA32, false); t.filterMode = FilterMode.Point; t.LoadImage(part[i].ImgBytes); t.Apply(false); img.texture = t; img.SetNativeSize(); //调整父节点的大小 float w = img.GetComponent <RectTransform>().sizeDelta.x; float h = img.GetComponent <RectTransform>().sizeDelta.y; obj.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(w, h); DisplayPartItem item = obj.AddComponent <DisplayPartItem>(); item.partType = part[i].PType; item.Init(); //最低点计算 float bottom = obj.GetComponent <RectTransform>().anchoredPosition.y - h / 2; if (partType == PartType.Body) { float j = Utils.GetPicHeightRate(t); bottom = h / 2 - h * (1 - j); } if (minY > bottom) { minY = bottom; } } if (whole.JoinType == JoinType.Animal && parentObj != null) { float offsetHeight = bodyRectTemp.transform.localPosition.y; parentObj.transform.SetAsLastSibling(); parentBody.GetComponent <RectTransform>().sizeDelta = new Vector2(bodyRectTemp.GetComponent <RectTransform>().sizeDelta.x, bodyRectTemp.GetComponent <RectTransform>().sizeDelta.y - offsetHeight);//bodyRectTemp.GetComponent<RectTransform>().sizeDelta; parentObj.GetComponent <RectTransform>().sizeDelta = new Vector2(bodyRectTemp.GetComponent <RectTransform>().sizeDelta.x, bodyRectTemp.GetComponent <RectTransform>().sizeDelta.y - offsetHeight); parentBody.GetComponent <RectTransform>().anchorMin = new Vector2(0.5f, 0); parentBody.GetComponent <RectTransform>().anchorMax = new Vector2(0.5f, 0); parentBody.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 0); } GameObject flagObj = new GameObject("flag_bottom"); flagObj.transform.SetParent(person.transform); flagObj.transform.localPosition = new Vector3(0, minY, 0); curPerson = person; GetListDiaplayItem(person.transform); minPosY = minY; return(person); }
private dynamic ReadDynamicValue(PartType part, PacketReader reader) { dynamic value = null; switch (part) { case PartType.Int16: value = reader.ReadLEInt16(); break; case PartType.Int32: value = reader.ReadLEInt32(); break; case PartType.Int64: value = reader.ReadLEInt64(); break; case PartType.Single: value = reader.ReadLESingle(); break; case PartType.FixedString: short l = reader.ReadLEInt16(); value = reader.ReadStringSafe(l); break; case PartType.DynamicString: value = reader.ReadStringSafe(); break; case PartType.Byte: value = reader.ReadByte(); break; case PartType.Boolean: value = reader.ReadBoolean(); break; default: MessageBox.Show("Undefined Segment Type Found - " + part.ToString()); break; } return value; }
protected override void OnValidate() { base.OnValidate(); gameObject.name = PartType.ToString(); }
public override string ToString() { return(partType.ToString() + "_" + partPosition.ToString()); }