GithubHelp home page GithubHelp logo

leaguetoolkit / leaguetoolkit Goto Github PK

View Code? Open in Web Editor NEW
93.0 7.0 28.0 107.13 MB

LeagueToolkit is a library for parsing and editing assets from League of Legends

Home Page: https://leaguetoolkit.github.io/LeagueToolkit/

License: GNU General Public License v3.0

C# 72.54% HTML 27.33% Batchfile 0.01% PowerShell 0.07% Shell 0.06%
league-of-legends fantome

leaguetoolkit's Introduction

League Toolkit

LeagueToolkit is a library for parsing and editing assets from League of Legends

Discord

If you want to talk to the developers or other people in the community, join our discord server:

leaguetoolkit's People

Contributors

chewybomber avatar crauzer avatar lzardy avatar moonshadow565 avatar morilli avatar setokaiba avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

leaguetoolkit's Issues

Invalid Discord Invite

Not sure if the discord still exists, but the invite link provided in Fantome projects is currently invalid.

Legacy Support (NVR)

An NVR to OBJ converter is not present yet. This would be a first step towards legacy modding.

ZstdSharp libs

Currently applications using LeagueToolkit have to include Crauzer/ZstdSharp again because otherwise the zstd-libs are not copied (which is probably due to the use of link). But this is a bit intuitive (especially since it is not mentioned anywhere).

Could we possibly solve this via our cspoj? And while we are at it could we possibly copy only the corresponding dll/dylib/so depending on the build OS? All three are not really needed when building for a specific OS.

[Meta] Use System.Text.Json instead of Newtonsoft.Json

I think we should use System.Text.Json for our work with JSON. The migration itself should not be wild. Actually only the following has to be done:

All JSON properties would need to be changed as follows:
(The [JsonInclude] is required the private setter otherwise will not be set)

[JsonPropertyName("alignment")]
[JsonInclude]
public uint Alignment { get; private set; }

Then the converters would have to be updated:

public override MetaDumpMapStorageType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
    string storage = reader.GetString();

and

public override void Write(Utf8JsonWriter writer, MetaDumpMapStorageType value, JsonSerializerOptions options)
{
    throw new NotImplementedException();
}

Then attributes for the two properties Version and Classes would have to be added to MetaDump.cs.

[JsonPropertyName("version")]
public string Version { get; set; }

[JsonPropertyName("classes")]
public Dictionary<string, MetaDumpClass> Classes { get; set; }

And the "Deserialize" function should look like this:

public static MetaDump Deserialize(string dump) => JsonSerializer.Deserialize<MetaDump>(dump);

So far so simple. But unfortunately the WriteMetaClasses part would have to be adjusted again and that's a bit out of my knowledge, so I didn't make a PR :/

Setter in PropertyBin

Hi,

I want to edit a PropertyBin to change some settings. Unfortunately the setters for e.g. BinTreeBool are set to Private. So I have to remove the property and add it with a changed value. This changes the order unnecessarily.

Is there any particular reason for this? Or am I missing something?

Nuget-Update

Hi, could you please possibly update the nuget package accordingly? It still points to 2.4.2

[Nuget] Release frequency or pre-release versions

Between 2.4.2 and 3.0.2 was roughly 1 1/2 years.

Is there a rough plan on how to proceed with the versions? Or would prerelease-packages be something to think about? So one could make a prerelease e.g. with each PR (that would be possibly frequently) or in certain time intervals). So you could do a prerelease e.g. with every PR (that would possibly be a bit frequent) or in certain time intervals.

I would like to use the change from #188, but I don't know when a new release is coming. Means the only possibility for me would be back to git submodule which is kinda not so cool.

System.ArgumentException: An item with the same key has already been added.

Hi, I'm trying to fix an error in lol2gltf executable, but it's crashing trying to load the animations when using Fantome library.

I'm trying to load this animation but it's crashing with this output. Here are the skl and skn file just in case.

System.ArgumentException: An item with the same key has already been added. Key: 219888547
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at Fantome.Libraries.League.IO.AnimationFile.Animation.ReadCompressed(BinaryReader br)
   at Fantome.Libraries.League.IO.AnimationFile.Animation..ctor(Stream stream)
   at Fantome.Libraries.League.IO.AnimationFile.Animation..ctor(String fileLocation)

Missing field names in many bin files

Not really a LeagueToolkit issue but I don`t know where else exactly to put this. (maybe we can use discussions)

I have unpacked the wads with Obsidian and wanted to look at them with Scavenger. But I noticed that many names are not known. So I took the source code and included the newest Meta. Unfortunately this helped me only conditionally. A lot of properties just don't have a name. These values seem to come from the FIELDS_HASHTABLE.txt (or, hashes.binfields.txt). Unfortunately this file is already 2 months old.

Is there anything I can do?

PS:

Only reference to LeagueToolkit would be the questions if we could update LeagueToolkit.Meta.Classes to the v13 patch? :)

Error: Out of range when importing models to MAPGEO

image
Error appears on my PROJECT Rift Map. I can't import all or 200 meshes otherwise it will get out of range. If I import 100 it exports as normal. Complete model sizes are 77,8 MB. 1KB min. to 1.148KB max. I can fix this issue myself but I want to inform you about that.

Export Yone champion model error if include animation

I try export Yone, include "\assets\characters\yone\skins\base\animations\yone_idle01.yone.anm" animation,
image
done, I try to open with Blender or Gltf-viewer error
image
I tried it does not include the animation, it is normal to work

Property bin version 3 isn't supported

A lot of skins have switched to using version 3 property bins, which cannot be read by LeagueToolkit. While I have no idea how to properly reverse engineer binary files, it seems like the general structure is still the same since the new files can be read just fine if I change the version number back to 2 in a hex editor.

Here's a sample property bin version 3 file Pantheon.wad.client.zip.

Metaclasses json

I wanted to replace Newtonsoft.Json with System.Text.Json. But to test the whole thing I need this meta_11.8.370.4668.json or the one from the current patch. Where can I download it?

netstandard2.0

I tried to activate netstandard2.0 as TargetFramework. But this is not so easy. Apart from a few changes in the project, the following packages unfortunately do not support 2.0

XXHash3.NET => No support for 2.0
ZstdSharp => No support for 2.0

Crauzer/ZstdSharp could possibly be replaced by oleg-st/ZstdSharp but I didn't look into that. For Crauzer/XXHash3.NET I don`t know a replacement right now.

I would not release a version of my tool in .NET Framework 4.7.2. Because this is natively installed on almost all Windows versions and therefore the EXE remains extremely small. netstandard2.0

Allow passing in raw texture data instead of `SixLabors.ImageSharp.Image` in `SimpleSkinGltfExtensions.ToGltf`

In the SimpleSkinGltfExtensions.ToGltf function, it would be favourable to be able to provide raw texture data (in byte[] form or similar) instead of having it be a SixLabors.ImageSharp.Image parameter.

This would get rid of the SixLabors.Imagesharp dependency (it is not used anymore else in this project) and should work without issues, as decoding and reencoding the image is not necessary for gltf; the SharpGLTF.Memory.MemoryImage constructors takes raw byte[] data anyways.

This also solves the current issue in the lol2gltf project where material textures are most prominently in the dds format, which ImageSharp doesn't support by default without an additional package that isn't on nuget yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.