private Transform GetSaberObjectParentTransform(AssetsManager manager) { var file11 = manager.GetAssetsFile(BSConst.KnownFiles.File11); var basicSaberModel = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaberModel"); if (basicSaberModel == null) { throw new Exception("Couldn't find BasicSaberModel!"); } var transform = basicSaberModel.Object.Components.FirstOrDefault(x => x.Object is Transform)?.Object as Transform; if (transform == null) { throw new Exception("Couldn't find Transform on BasicSaberModel!"); } var saberParent = (transform.Children.FirstOrDefault(x => x.Object is Transform && ((x.Object as Transform).GameObject?.Object?.Name?.EndsWith("Saber") ?? false)).Object as Transform); if (saberParent == null) { throw new Exception("Could not find child transform of BasicSaberModel!"); } return(saberParent); }
private Pluralizer plurServ; //for arrays public GameObjectViewer(AssetsManager helper, AssetsFileInstance inst, long selectedId) { InitializeComponent(); this.helper = helper; this.inst = inst; this.selectedId = selectedId; }
private void RemoveLevelAssets(AssetsManager manager, BeatmapLevelDataObject level, List <string> audioFilesToDelete) { Log.LogMsg($"Removing assets for song id '{level.LevelID}'"); var file17 = manager.GetAssetsFile(BSConst.KnownFiles.SongsAssetsFilename); file17.DeleteObject(level); var cover = level.CoverImageTexture2D.Object; if (cover == null) { Log.LogErr($"Could not find cover for song id '{level.LevelID}' to remove it"); } else { file17.DeleteObject(cover); } foreach (var diff in level.DifficultyBeatmapSets) { foreach (var diffbm in diff.DifficultyBeatmaps) { file17.DeleteObject(diffbm.BeatmapDataPtr.Object); } } var audioClip = level.AudioClip.Object; if (audioClip == null) { Log.LogErr($"Could not find audio clip asset for song id '{level.LevelID}' to remove it"); } else { audioFilesToDelete.Add(audioClip.Resource.Source); file17.DeleteObject(audioClip); } }
private static int GetSuggestedDancePosition([NotNull] AssetsManager manager) { foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.MonoBehaviour) { continue; } var behaviour = obj as MonoBehaviour; Debug.Assert(behaviour != null); var match = DanceAssetVaguePattern.Match(behaviour.m_Name); if (match.Success) { var posStr = match.Groups["position"].Value; var pos = Convert.ToInt32(posStr); return(pos); } } } return(InvalidDancePosition); }
public static CompositeMesh LoadHeadMesh([NotNull] string filePath) { var meshList = new List <PrettyMesh>(); var manager = new AssetsManager(); manager.LoadFiles(filePath); foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.Mesh) { continue; } var mesh = obj as Mesh; if (mesh == null) { throw new ArgumentNullException(nameof(mesh), "One of head meshes is null."); } var m = new MeshWrapper(manager.assetsFileList, mesh, TexturedMaterialExtraProperties.Head); meshList.Add(m); } } var result = CompositeMesh.FromMeshes(meshList.ToArray()); return(result); }
public static PrettyMesh LoadBodyMesh() { MeshWrapper result = null; var manager = new AssetsManager(); manager.LoadFiles(BodyModelFilePath); var lookup = SerializedObjectsLookup.Create(manager); foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.Mesh) { continue; } var mesh = obj as Mesh; if (mesh == null) { throw new ArgumentNullException(nameof(mesh), "Body mesh is null."); } result = new MeshWrapper(lookup, mesh, TexturedMaterialExtraProperties.Body); break; } } return(result); }
private void AddAssets(AssetState asset, Fixed8 value, Fixed8 claim) { bool isAdd = true; foreach (AssetItem item in assetItems) { if (item.Asset.AssetId == asset.AssetId) { isAdd = false; item.Asset = asset; item.Value = value; item.Claim = claim; item.RefreshInterface(); } } if (isAdd) { AssetItem item = new AssetItem(asset, value, claim); assetItems.Add(item); } assetInfoPage.Refresh(assetItems); if (AssetsManager.GetInstance().AddAssets(asset.AssetId, asset.GetName())) { sendPage.AddAsset(asset.AssetId, asset.GetName(), value); } else { sendPage.RefreshAsset(asset.AssetId, value); } }
public static List <ulong> CrawlPPtrs(AssetsManager am, AssetsFileInstance inst, ulong startingId) { List <ulong> depIds = new List <ulong>(); depIds.Add(startingId); return(CrawlPPtrs(am, inst, startingId, depIds)); }
private static DanceAnimationSet <CharacterImasMotionAsset> LoadDanceLegacy([NotNull] string filePath, int motionNumber, int formationNumber) { CharacterImasMotionAsset dan = null, apa = null, apg = null, bpg = null; var danComp = $"{motionNumber:00}_dan.imo"; var apaComp = $"{formationNumber:00}_apa.imo"; var apgComp = $"{formationNumber:00}_apg.imo"; var bpgComp = $"{formationNumber:00}_bpg.imo"; var manager = new AssetsManager(); manager.LoadFiles(filePath); var ser = new ScriptableObjectSerializer(); foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.MonoBehaviour) { continue; } var behaviour = obj as MonoBehaviour; if (behaviour == null) { throw new ArgumentException("An object serialized as MonoBehaviour is actually not a MonoBehaviour."); } // Can't use EndsWith() here: some bundles have ".asset" postfixes (alstar_01.imo.unity3d: _apa.imo, _dan_imo.asset, _apg.imo.asset) if (behaviour.m_Name.Contains(danComp)) { dan = ser.Deserialize <CharacterImasMotionAsset>(behaviour); } else if (behaviour.m_Name.Contains(apaComp)) { apa = ser.Deserialize <CharacterImasMotionAsset>(behaviour); } else if (behaviour.m_Name.Contains(apgComp)) { apg = ser.Deserialize <CharacterImasMotionAsset>(behaviour); } else if (behaviour.m_Name.Contains(bpgComp)) { bpg = ser.Deserialize <CharacterImasMotionAsset>(behaviour); } if (dan != null && apa != null && apg != null && bpg != null) { break; } } } var suggestedPosition = GetSuggestedDancePosition(manager); return(AnimationSet.CreateDance(suggestedPosition, dan, apg, apa, bpg)); }
private static void Init() { Glut.glutInit(); Glut.glutInitDisplayMode(Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH); Glut.glutInitWindowSize(Width, Height); ScreenWidth = Glut.glutGet(Glut.GLUT_SCREEN_WIDTH); ScreenHeight = Glut.glutGet(Glut.GLUT_SCREEN_HEIGHT); Glut.glutInitWindowPosition((ScreenWidth - Width) / 2, (ScreenHeight - Height) / 2); Glut.glutCreateWindow("Plexico 2D Game - Copyright Alex Tan 2016"); //Glut.glutGameModeString(Width+"x"+Height+":32@60"); Glut.glutSetOption(Glut.GLUT_ACTION_ON_WINDOW_CLOSE, Glut.GLUT_ACTION_CONTINUE_EXECUTION); Gl.Viewport(0, 0, Width, Height); Glut.glutReshapeFunc(OnReshape); Glut.glutDisplayFunc(delegate() { }); Glut.glutIdleFunc(MainGameLoop); //Console.SetWindowSize(Console.LargestWindowWidth / 4, Console.LargestWindowHeight / 4); //Console.SetWindowPosition(0, 0); Mode = ProgramMode.None; AssetsManager.Init(); Input.Init(); Gui.Init(); SwitchToTitleScreen(); }
public bool SelectionValidForPlugin(AssetsManager am, UABEAPluginAction action, List <AssetContainer> selection, out string name) { name = "Batch import .png"; if (action != UABEAPluginAction.Import) { return(false); } if (selection.Count <= 1) { return(false); } int classId = AssetHelper.FindAssetClassByName(am.classFile, "Texture2D").classId; foreach (AssetContainer cont in selection) { if (cont.ClassId != classId) { return(false); } } return(true); }
public LoadModPackageDialog(InstallerPackageFile emip, AssetsManager am) : this() { this.emip = emip; this.am = am; BuildTreeAssets(); }
public GameplayWindow(SkrWindowTemplate template) : base(template) { AssetsManager = new AssetsManager(); _player = template.World.Player; }
State nextState = State.Staying; // 次のステータス void Start() { animator = GetComponent <Animator>(); assetsManager = FindObjectOfType <AssetsManager>(); // 待機状態変数初期化 StayStart(); }
// GET: Assets/Edit/5 public ActionResult Edit(int id) { var asset = AssetsManager.Find(id); ViewBag.AssetTypeId = GetAssetTypes(); return(View(asset)); }
public IActionResult Assets(int id) { var filteredAssets = AssetsManager.GetAllByAssetType(id); var result = $"Asset count: {filteredAssets.Count}"; return(Content(result)); }
//we probably don't need this method anymore private static void RecurseType(AssetsManager am, AssetsFileInstance inst, AssetTypeValueField field, List <ulong> ids, int depth) { string p = new string(' ', depth); foreach (AssetTypeValueField child in field.pChildren) { //UnityEngine.Debug.Log(p + child.templateField.type + " " + child.templateField.name); if (!child.templateField.hasValue) { if (child == null) { return; } string typeName = child.templateField.type; if (typeName.StartsWith("PPtr<") && typeName.EndsWith(">") && child.childrenCount == 2) { int fileId = child.Get("m_FileID").GetValue().AsInt(); ulong pathId = (ulong)child.Get("m_PathID").GetValue().AsInt64(); //UnityEngine.Debug.Log(p + "found pptr of " + fileId + "," + pathId); if (fileId == 0 && pathId != 0 && !ids.Contains(pathId)) //it's possible we could load some outside dependency, but I'd rather that not happen { ids.Add(pathId); AssetTypeValueField depBaseField = am.GetExtAsset(inst, child).instance.GetBaseField(); RecurseType(am, inst, depBaseField, ids, 0); } } RecurseType(am, inst, child, ids, depth + 1); } } }
public AssetDataScanner(StartScreen ss, AssetsManager am, string dirName) { this.ss = ss; this.am = am; this.dirName = dirName; InitializeComponent(); }
public PPtrScanner(AssetsManager am, string dirName) { this.am = am; this.dirName = dirName; usedTfc = am.useTemplateFieldCache; InitializeComponent(); }
public static void ImportCardArt(params string[] sets) { string cardArtPath = Path.Combine(Helper.GetAppDataPath(), "CardArt"); Directory.CreateDirectory(cardArtPath); var assetDirectory = new DirectoryInfo(Path.Combine(Helper.GetInstallPath(), @"MTGA_Data\Downloads\AssetBundle")); _assetsManager = new AssetsManager(); _loadedAssets = new Dictionary <string, Texture2D>(); var files = from set in sets select assetDirectory.EnumerateFiles().FirstOrDefault(f => f.Name.StartsWith($"{set.ToLower()}_cardart_")) into file where file != null select file.FullName; _assetsManager.LoadFiles(files.ToArray()); foreach (var serializedFile in _assetsManager.assetsFileList) { foreach (var obj in serializedFile.Objects.Values) { if (!(obj is Texture2D texture2D)) { continue; } _loadedAssets[texture2D.m_Name] = (Texture2D)obj; } } }
public static CameraAnimationSet <CharacterImasMotionAsset> LoadCamera([NotNull] string filePath, [CanBeNull] int?desiredCameraNumber) { CharacterImasMotionAsset cam = null, apa = null, apg = null, bpg = null; var manager = new AssetsManager(); manager.LoadFiles(filePath); var ser = new ScriptableObjectSerializer(); int cameraNumber; if (desiredCameraNumber != null) { do { // Some songs, e.g. Alliance Stardust (alstar), has more than one cameras. // In these cases the user must select the appropriate camera number. if (TryLoadSpecifiedCamera(manager, ser, desiredCameraNumber.Value, ref cam, ref apa, ref apg, ref bpg)) { cameraNumber = desiredCameraNumber.Value; break; } TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg); cameraNumber = InvalidCameraNumber; } while (false); } else { TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg); cameraNumber = UnspecifiedCameraNumber; } return(AnimationSet.CreateCamera(cameraNumber, cam, apg, apa, bpg)); }
public MonobehaviourSearch(List <AssetDetails> details, AssetsFile file, AssetsManager manager) { InitializeComponent(); this.details = details; this.file = file; this.manager = manager; }
public TransformSearch(List <AssetDetails> details, AssetsFile file, AssetsManager manager) { InitializeComponent(); this.details = details; this.file = file; this.manager = manager; }
private static void ExtractSingleAcb([NotNull] string assetBundlePath) { Console.WriteLine("Extracting: {0}", assetBundlePath); var dir = new FileInfo(assetBundlePath).DirectoryName; Debug.Assert(dir != null); var manager = new AssetsManager(); manager.LoadFiles(assetBundlePath); foreach (var assetFile in manager.assetsFileList) { foreach (var o in assetFile.Objects) { if (o.type != ClassIDType.TextAsset) { continue; } var a = (TextAsset)o; var acbName = a.m_Name; var acbData = a.m_Script; var acbPath = Path.Combine(dir, acbName); using (var file = File.Open(acbPath, FileMode.Create, FileAccess.Write, FileShare.Write)) { file.Write(acbData, 0, acbData.Length); } } } }
public OpenBundleDialog(AssetsManager helper, string filePath) { InitializeComponent(); this.filePath = filePath; fileName = Path.GetFileName(filePath); inst = helper.LoadBundleFile(filePath); file = inst.file; uint compressionMethod = file.bundleHeader6.flags & 0x3F; if (compressionMethod == 0) { justThisFile.Enabled = true; fileAndDependencies.Enabled = true; compressBundle.Enabled = true; status.Text = $"Opening bundle file {fileName}..."; } else { decompressBundle.Enabled = true; decompressBundleInMemory.Enabled = true; if (compressionMethod == 1) { status.Text = $"Opening bundle file {fileName} (LZMA)..."; } else if (compressionMethod == 2 || compressionMethod == 3) { status.Text = $"Opening bundle file {fileName} (LZ4)..."; } else { status.Text = $"Opening bundle file {fileName} (???)..."; } } }
static void PatchVR(string gameManagersBackupPath, string gameManagersPath, string classDataPath) { Console.WriteLine("Patching globalgamemanagers..."); Console.WriteLine($"Using classData file from path '{classDataPath}'"); AssetsManager am = new AssetsManager(); am.LoadClassPackage(classDataPath); AssetsFileInstance ggm = am.LoadAssetsFile(gameManagersBackupPath, false); AssetsFile ggmFile = ggm.file; AssetsFileTable ggmTable = ggm.table; am.LoadClassDatabaseFromPackage(ggmFile.typeTree.unityVersion); List <AssetsReplacer> replacers = new List <AssetsReplacer>(); AssetFileInfoEx buildSettings = ggmTable.GetAssetInfo(11); AssetTypeValueField buildSettingsBase = am.GetATI(ggmFile, buildSettings).GetBaseField(); AssetTypeValueField enabledVRDevices = buildSettingsBase.Get("enabledVRDevices").Get("Array"); AssetTypeTemplateField stringTemplate = enabledVRDevices.templateField.children[1]; AssetTypeValueField[] vrDevicesList = new AssetTypeValueField[] { StringField("OpenVR", stringTemplate) }; enabledVRDevices.SetChildrenList(vrDevicesList); replacers.Add(new AssetsReplacerFromMemory(0, buildSettings.index, (int)buildSettings.curFileType, 0xffff, buildSettingsBase.WriteToByteArray())); using (AssetsFileWriter writer = new AssetsFileWriter(File.OpenWrite(gameManagersPath))) { ggmFile.Write(writer, 0, replacers, 0); } }
public static MeshWrapper LoadBodyMesh([NotNull] string filePath) { MeshWrapper result = null; var manager = new AssetsManager(); manager.LoadFiles(filePath); foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.Mesh) { continue; } var mesh = obj as Mesh; if (mesh == null) { throw new ArgumentNullException(nameof(mesh), "Body mesh is null."); } result = new MeshWrapper(manager.assetsFileList, mesh, TexturedMaterialExtraProperties.Body); break; } } return(result); }
public static void Init(BattleParams param) { _init = true; _shouldSendActions = false; string model = ModelFactory.GetBattleData(Utils.GetIDFromRID(param.id)).model; CAIBakedNavmesh navmeshData = AssetsManager.LoadAsset <CAIBakedNavmesh>("scene/" + model + "_navmesh", "CAIBakedNavmesh"); _framesPerKeyFrame = param.framesPerKeyFrame; _frameRate = param.frameRate; _nextKeyFrame = param.framesPerKeyFrame; cBattle = new VBattle(param); lBattle = new Battle(param, navmeshData.GetNavmesh(), Env.LUA_ENV); _logicThread = new Thread(LogicWorker); _logicThread.IsBackground = true; _logicThread.Start(); NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_START, HandleBattleStart); NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_FRAME, HandleFrame); NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_END, HandleBattleEnd); NetModule.instance.Send(ProtocolManager.PACKET_BATTLE_QCMD_BATTLE_CREATED()); }
public static AvatarWrapper LoadBodyAvatar([NotNull] string filePath) { AvatarWrapper result = null; var manager = new AssetsManager(); manager.LoadFiles(filePath); foreach (var assetFile in manager.assetsFileList) { foreach (var obj in assetFile.Objects) { if (obj.type != ClassIDType.Avatar) { continue; } var avatar = obj as Avatar; if (avatar == null) { throw new ArgumentNullException(nameof(avatar), "Body avatar is null."); } result = new AvatarWrapper(avatar); break; } } return(result); }
public BeatSaberQuestomConfig GetCurrentConfig(bool suppressImages = false) { using (var apkFileProvider = new ApkAssetsFileProvider(_apkFilename, ApkAssetsFileProvider.FileCacheMode.Memory, true)) { var manager = new AssetsManager(apkFileProvider, BSConst.GetAssetTypeMap(), false); manager.GetAssetsFile("globalgamemanagers"); var file11 = manager.GetAssetsFile(BSConst.KnownFiles.File11); var basicSaberModel = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaberModel"); var basicSaber = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaber"); var config = GetConfig(manager, suppressImages); //clear out any of the internal refs that were used so the GC can clean things up foreach (var p in config.Playlists) { p.CoverArtSprite = null; p.LevelPackObject = null; foreach (var song in p.SongList) { song.LevelData = null; song.SourceOgg = null; } } config.Saber = new SaberModel() { SaberID = GetCurrentSaberID(manager) }; return(config); } }
private void LoadAssets() { AssetsManager m_assetsManager = new AssetsManager(Application.Current); m_assetsManager.AssetsDictionary.Add("BackgroundBlack", "/Assets/LogoBlack.png"); m_assetsManager.AssetsDictionary.Add("BackgroundWhite", "/Assets/LogoWhite.png"); m_assetsManager.AssetsDictionary.Add("DivisionBlack", "/Assets/Icons/DivisionBlack.png"); m_assetsManager.AssetsDictionary.Add("DivisionWhite", "/Assets/Icons/DivisionWhite.png"); m_assetsManager.AssetsDictionary.Add("MailBlack", "/Assets/Icons/MailBlack.png"); m_assetsManager.AssetsDictionary.Add("MailWhite", "/Assets/Icons/MailWhite.png"); m_assetsManager.AssetsDictionary.Add("TwitterBlack", "/Assets/Icons/TwitterBlack.png"); m_assetsManager.AssetsDictionary.Add("TwitterWhite", "/Assets/Icons/TwitterWhite.png"); m_assetsManager.AssetsDictionary.Add("WebBlack", "/Assets/Icons/WebBlack.png"); m_assetsManager.AssetsDictionary.Add("WebWhite", "/Assets/Icons/WebWhite.png"); Cirrious.CrossCore.Mvx.RegisterSingleton<IAssetsManager>(m_assetsManager); }
void Awake() { if (null != sInstance) return; sInstance = this; // keep alive on change scene DontDestroyOnLoad(this.gameObject); // if exist gameobject called "UIRoot". Destory it. // this maybe we add to desing ui temply GameObject gameObjectUIRoot = GameObject.Find("UIRoot"); if (null != gameObjectUIRoot) GameObject.Destroy (gameObjectUIRoot); GameObject uiPageMain = GameObject.Find("UIPageMain"); if (null != uiPageMain) GameObject.Destroy (uiPageMain); mAssetsMgr = AssetsManager.GetInstance (); mUIMgr = UIManager.GetInstance (); // asset manager update path string updatePath = Application.persistentDataPath + "Update"; if (!Directory.Exists(updatePath)) Directory.CreateDirectory(updatePath); mAssetsMgr.AddUpdatePath (updatePath); // ui manager _Load(0, () => { // lua LuaState.loaderDelegate = LuaLoadFunction; luaSvr_GM = new LuaSvr(); luaSelf_GM =(LuaTable)luaSvr_GM.start("Lua/GameManager"); luaUpdate_GM = (LuaFunction)luaSelf_GM["update"]; }); }
public static AssetsManager GetInstance() { if (null == sInstance) sInstance = new AssetsManager (); return sInstance; }
public void Destroy() { ClearAssetAll (false); sInstance = null; }
private void LoadAssets() { AssetsManager m_assetsManager = new AssetsManager(); Cirrious.CrossCore.Mvx.RegisterSingleton<IAssetsManager>(m_assetsManager); }
void OnDestroy() { if (null != mUIMgr) { mUIMgr.Destroy(); mUIMgr = null; } if (null != mAssetsMgr) { mAssetsMgr.Destroy(); mAssetsMgr = null; } }