Giter Site home page Giter Site logo

civ6-maptacks's People

Contributors

bszonye avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

civ6-maptacks's Issues

Hotkey support

A few parts of the map pin interface could use better hotkey support, especially adding and deleting pins. The challenges here are configuration – is it possible to hook into the stock hotkey configuration panel? – and awkward interactions with other controls like the name editor control.

Icons by name

As a debug or power-user feature, the pin styling functions could interpret icon IDs in the pin name field. For example, if a pin were named ICON_UNITCOMMAND_CANCEL, the styling functions would render it as an unnamed pin with the cancel icon. This would help with implementing and testing #26 and might provide a workaround for #19.

Benchmark breaks MapTacks.PlayerTraits

The game benchmark sets the active player ID to -1, which causes an attempt to index a nil value error in MapTacks.PlayerTraits. The function should return an empty set of traits if the player ID is invalid.

Great Person wraparound

The popup grid determines most of the pins dynamically, and while the layout is fairly stable, it can vary depending on game version and DLC. This might be a problem for the Great Person section of the grid. As a quick fix, I could shift that section to the right, to guard against it underflowing the edge of the grid. Longer-term, it might be nice to handle the grid chunks intelligently, so that blocks of similar icons stay between the edges, and single icons (like “Spy” and “Form Army”) flow around them.

Export/Import Tack Titles Request

Dear bszonye;

First, my apology if requests belong elsewhere; Github is new to me and I couldn't find an obvious place to post this.

I would greatly appreciate an export/import as plain text capability for Map Tacks.

I'm a bit OCD, so I am often updating the Tack titles so that they are grouped by category in the (sorted) map tacks list screen.

Exporting the list as text (one title per line), editing it in a text editor, then importing it would improve this tremendously.

I tried modifying this mod for that purpose, but I am new to programming mods for CIV VI, and have so far not made much progress.

Assuming it is not difficult, even a tip or 2 on the best way to accomplish this would be appreciated ; ).

  • Pydemon

Delete shortcut

A shortcut for pin deletion would be handy. The stock code has a handler, commented out, for deleting pins with a right-click. I can see why – that seems prone to accidental deletion. CQUI uses a right click on the pins list instead, which seems safer but I’m not totally convinced. A hotkey on the edit popup (#18) would also make sense if it doesn’t conflict with the edit box.

Release script

Need a script to collect all release files and prepare them for upload. Ideally it should also prepare change notes for the update.

Map Tacks popup title

Replace the Map Pins popup title with Map Tacks. I did this temporarily for the logo screenshot, but it would be nice to change the popup permanently with a properly localized version.

Wonder support

Initial release omits Wonder icons, because they’re not very legible, and because they don’t fit neatly into the grid. Instead, the icon grid includes the generic DISTRICT_WONDER icon, which you can label with the Wonder name. However, it would be handy to have some way of adding Wonder icons for folks who want them. One hacky way to do it would be to interpret the pin name as an icon. A less hacky way would be to add Wonder menu that could present a cleaner interface to the full list.

Inter-mod compatibility

Need to survey popular UI mods and determine how they interact with this one, and possibly resolve incompatibilities.

Fix quadratic pin refresh behavior

While testing with large pin arrays, there was an obvious performance bug that got worse with each new pin. Steam Workshop user mendaere found the root cause:

This will be a bit convoluted. In mappinmanager.lua there is a Refresh() function that rebuilds the pin flags. This function loops over all the pins for all players and calls CreateMapPinFlag on each of them. This calls MapPinFlag:UpdatePosition which calls MapPinFlag:SetPosition. This last function loops through the entire set of previously seen flags looking for ones on the same hex. In other words, its looping over every previous item in the pin list for every item in the pin list, a classic order n-squared algorithm. Put in layman's terms, the time it takes to perofrm this refresh (which it does on initial load, every new pin and every pin update) is proportional to the square of the number of tacks. At 100 tacks its noticable, at 200 its painful, by the time you get to around 300 its pretty much unusable with (on my PC at least) a 30+ second gap every time you try to add/remove/modify a pin.

Specifically, the loop here in MapPinFlag.SetPosition() iterates over the same elements as its caller, creating quadratic behavior that is quite noticeable with dozens of pins. The Refresh routine should pre-calculate the pins per space in a separate pass, rather than doing it on the fly and then throwing away the result for each pin.

Pin display toggle

ToggoStar requested:

Is there any way to toggle the display of pins on the map with this mod? I would love to use pins and especially this mod quite a lot, but I hate the cluttered look all of the pins leave on the map. I only need to glance at the pins from time to time and toggleing would be perfect!

This would not be too difficult technically. The challenging part would be avoiding conflicts with other mods, as an easily-accessible toggle switch would probably need to go into the minimap code.

Misaligned map pin list after Fall 2017 update

BLÀde reports:

it works with fall patch however you can't close the map pin menu you have to click on anther menu item to close it. it overlaps the map pin button once opened making it not possible to close

Universal icon styling

With #24 resolved, you can now layer Map Tacks on top of NQ/CQUI and other general UI mods. Those mods have different icon options (notably the individual wonder icons, see #19). Thus, player maps might have icons outside the currently supported range. The typing and styling fuctions (MapTacksType, MapPinFlag.SetColor, MapPinFlag.SetFlagUnitEmblem) should recognize and adapt to a wider range of icons: at least wonder icons, and ideally anything that could reasonably fit on a pin head.

Mod disappears when loading saved games

A few subscribers have reported problems when continuing a saved game:

View The Phenom: Does anyone else experience an issue where a game does not save the "Map Tacks" mod under additional content? So when continuing a game the mod isn't loaded?

BLÀde: it was working until the sep 3 update now they don't show up at all.

kevblackwel: it doesn't work when you load a game :)

View The Phenom said that they had similar problems with other mods on the Clean Interface list. BLÀde said that the problem went away after unsubscribing and re-subscribing to Map Tacks.

Altogether, this sounds like the 0.9.1 update does not reliably ensure compatibility with conflicting mods like NQ & CQUI. It would help to know what other mods are present in the conflicting games.

Update the logo

After redesigning the list popup, the mod needs a new logo! Ideally, the logo should adjust the layout to compress empty space and make features more obvious.

Documentation

The README needs to document major features, changes, and external links (like the Steam Workshop page for the mod).

Add barbarian & village icons

I currently use the Pillage and Plunder icons for barbarian camps and tribal villages, but it would be better to add the barbarian & village notification icons instead.

Inconsistent mouse wheel behavior

When the map tack list grows long enough to get a scroll bar, the mouse wheel only works in part of the pop-up window. Steam user [COLOR_Culture][NQ] je offers this suggestion:

hey just thought I would help speed up the process.. its the ConsumeAllMouse="1" change to 0 in the MapPinListEntry Instance. on the GridButton ID="MapPinListButton"

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.