public void Load(byte[] data, RpfFileEntry entry) { Name = entry.Name; RpfFileEntry = entry; RpfResourceFileEntry resentry = entry as RpfResourceFileEntry; if (resentry == null) { throw new Exception("File entry wasn't a resource! (is it binary data?)"); } ResourceDataReader rd = new ResourceDataReader(resentry, data); Fragment = rd.ReadBlock <FragType>(); if (Fragment.Drawable != null) { Fragment.Drawable.Owner = this; } if (Fragment.Drawable2 != null) { Fragment.Drawable2.Owner = this; } Loaded = true; }
public void Load(string fileName) { var resource = new ResourceFile_GTA5_pc <FragType>(); resource.Load(fileName); fragType = resource.ResourceData; }
public FragType GetRandomFrag(bool tangible) { int beg = (int)FragType.MAKE_BUILDING + 1; //start after MakeBuilding if (tangible) { beg = 5; //start after Make Building and the build fragments } //Needs to return a random type for a specific tier return((FragType)Random.Range(beg, FragType.GetValues(typeof(FragType)).Length)); }
public static string GetXml(YftFile yft, string outputFolder = "") { StringBuilder sb = new StringBuilder(); sb.AppendLine(XmlHeader); if (yft?.Fragment != null) { FragType.WriteXmlNode(yft.Fragment, sb, 0, outputFolder); } return(sb.ToString()); }
public static string IntToFrag(FragType ft) { if (TypeToFrag == null) { return(""); } if ((int)ft > TypeToFrag.Length) { return(""); } return(TypeToFrag[(int)ft]); }
public void Load(Stream stream) { var resource = new ResourceFile_GTA5_pc <FragType>(); resource.Load(stream); if (resource.Version != 162) { throw new Exception("version error"); } fragType = resource.ResourceData; }
public static YftFile GetYft(XmlDocument doc, string inputFolder = "") { YftFile r = new YftFile(); var ddsfolder = inputFolder; var node = doc.DocumentElement; if (node != null) { r.Fragment = FragType.ReadXmlNode(node, ddsfolder); } r.Name = Path.GetFileName(inputFolder); return(r); }
// Copy from void CopyFrom(RayfireShatter shatter) { type = shatter.type; voronoi = new RFVoronoi(shatter.voronoi); splinters = new RFSplinters(shatter.splinters); slabs = new RFSplinters(shatter.slabs); radial = new RFRadial(shatter.radial); custom = new RFCustom(shatter.custom); slice = new RFSlice(shatter.slice); tets = new RFTets(shatter.tets); mode = shatter.mode; material.CopyFrom(shatter.material); clusters = new RFShatterCluster(shatter.clusters); advanced = new RFShatterAdvanced(shatter.advanced); }
//gets a different random fragment basedon which plane the tile is on void RefreshFragment() { PlaneManager pm = PlaneManager.PM; GameObject p = transform.parent.gameObject; if (p == pm.HighPlane) { NextFrag = FragmentManager.FM.GetRandomFrag(FragmentManager.FM.UpperFrags); } else if (p == pm.MidPlane) { NextFrag = FragmentManager.FM.GetRandomFrag(FragmentManager.FM.MiddleFrags); } else if (p == pm.LowPlane) { NextFrag = FragmentManager.FM.GetRandomFrag(FragmentManager.FM.LowerFrags); } }
private void UpdateModelsUI(FragType frag) { DetailsPropertyGrid.SelectedObject = frag; var drawable = frag.Drawable; DrawableDrawFlags.Clear(); Renderer.SelectionModelDrawFlags.Clear(); Renderer.SelectionGeometryDrawFlags.Clear(); ModelsTreeView.Nodes.Clear(); ModelsTreeView.ShowRootLines = false; TexturesTreeView.Nodes.Clear(); if (drawable != null) { AddDrawableModelsTreeNodes(drawable.DrawableModelsHigh, "High Detail", true); AddDrawableModelsTreeNodes(drawable.DrawableModelsMedium, "Medium Detail", false); AddDrawableModelsTreeNodes(drawable.DrawableModelsLow, "Low Detail", false); AddDrawableModelsTreeNodes(drawable.DrawableModelsVeryLow, "Very Low Detail", false); //AddSelectionDrawableModelsTreeNodes(item.Drawable.DrawableModelsX, "X Detail", false); } }
/// ///////////////////////////////////////////////////////// /// Stretching /// ///////////////////////////////////////////////////////// // Set stretching static void SetStretching(RFShatter shatter, AxisType axis, float strength, FragType fragType) { // Get slab vector Vector3 stretchDir = DirectionAxis(axis); // Adjust for slabs if (fragType == FragType.Slabs) { Vector3 vector = new Vector3(); if (stretchDir.x <= 0) { vector.x = 1f; } if (stretchDir.x >= 1f) { vector.x = 0; } if (stretchDir.y <= 0) { vector.y = 1f; } if (stretchDir.y >= 1f) { vector.y = 0; } if (stretchDir.z <= 0) { vector.z = 1f; } if (stretchDir.z >= 1f) { vector.z = 0; } stretchDir = vector; } // Set stretch vector shatter.SetPoint3Parameter((int)RFShatter.FragmentParams.stretching, stretchDir * Mathf.Lerp(40f, 99f, strength)); }
public FragTypeWrapper_GTA5_pc(FragType fragType) { this.fragType = fragType; }
public Fragment(FragType _type, String _str) { str = _str; type = _type; }
//Creates an instance for the type of fragment passed public static Fragment CreateFragment(FragType ft) { return(CreateFragment(IntToFrag(ft))); }
public FragmentFileWrapper_GTA5_pc() { fragType = new FragType(); }
//sets the fragment held in the tile public void setFragment(FragType ft) { NextFrag = ft; }