Giter VIP home page Giter VIP logo

lumper's People

Contributors

bird311 avatar ddorab avatar gocnak avatar jpaja avatar panzerhandschuh avatar patrickmoc avatar shame-mm avatar tsa96 avatar wertiop121 avatar

Stargazers

 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

lumper's Issues

Allow opening BSP files by dragging over UI view

Only looked at this briefly but I think it's possible (on Windows at least) (AvaloniaUI/Avalonia#2635). We want users, especially moderators reviewing maps, to be able to open BSP files very quickly to check contents - if someone's reviewing a dozen maps in one sitting we should make it very streamlined.

Best way I can think of is having dragging a BSP file anywhere onto the UI immediately open that BSP. If another BSP file (by file path) is already open, spawn a new instance of Lumper and open in there. Should be lightweight enough to handle that, though maybe worth checking someone doesn't accidentally drag 100 files onto it and spawn a 100 instances at once.

BSP Diff Viewer

Add a page that can loads two BSP files and generates some kind of Git-like diff between them. Some lumps probably change weirdly (idk if VRAD is even deterministic), but changes lumps we manage would be super useful.

Suggested by OzxyBox as a useful tool for future Chaos compiler improvements (ask in red for more details)

Add menuing UI for different Lumper features

By the looks of things, core UI for Lumper will general IO stuff for BSP loading and saving in top menu, then many different windows for different views, e.g. entity editor, texture viewer etc.

Adding this will be key to getting additional views added besides just entity editor, so high priority for anyone interested in UI related parts of Lumper.

We can discuss layout in Discord if needed, personally I'd be happy with easier a top or side nav for switching between each view.

Show BSP file name in window title

Currently there's no real indication what file you have open. We should probably show this in the UI itself somewhere but let's get through more UI design work first.

However, we should definitely modify the window title to like bhop_arcane.bsp - Lumper. I assume this is very easy, a good first issue!

Implement UI using Avalonia

https://www.avaloniaui.net/

We most likely will not be using MVVM structure as the app is really simple, so the code can be in the view's codebehind files.

No mockups yet on what it'll look like, but ideally we have steps on the leftmost column, and a main view of the current "step".

Packed Cubemap Removal

This is going to require DX11 (async) cubemap generation in the game code, but once in place, maps will no longer need cubemaps packed into them, as the game will automatically generate them for the player on first time boot.

View and edit packed files

It'd be nice to have the ability to view, add and remove files packed into the BSP. Right now this can only be done using the bspzip command line tool. I was considering writing a Qt tool in-engine to do this, however lumper seems like a better fit for such a thing (plus it's open source!)

Entity Removal + Editing

  • Stripper files from servers?
  • Drag n Drop stripper files to the editor to apply it?
  • Entity equivalents (map TF2 pumpkins to Momentum Pumpkins etc)
  • Removing team-based spawns (e.g. remove all red)
  • Slurs and bad word detection for entity IO (bhop_epiphany had this)

Mounted Asset Removal

We actually have a C++ tool shipping with the game that does this: "bspfix.exe"

So ideally all we need to do is invoke it on the bsp here.

Add error handling to BSP loading process

Currently we have several general error-handling TODOs sitting around in the code, especially for BSP file loading. This can easily end up stagnating, we should work on it ASAP. MainViewModel.IO's has saving but not loading. This was actually making debugging harder for XB earlier, seemed like an internal Lumper thing but really just file path stuff. This should be caught at displayed in a message box.

Also, BspFile's Load(string path) has a nasty looking "// TODO: loads of error handling" at the top, @BIRD311 what are plans for this?

UI unresponsive during load

Loading a file freezes the windows until it finishes.
BSP loading needs to be called asynchronously. Probably using async and await in BspFile.Load() or wherever the BspFileReader is called from.
A progress bar would also be nice.

BSPZip final product

Invoking bspzip.exe -repack on the final BSP is the last step needed for the "production" map.

Texture Viewing

  • Grid of all textures in the map, see the hammer texture picker or in-game mat_show_list texture list thing
  • Down the line: OpenCV detecting “potentially dangerous” textures automatically

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.