- Android
- Kotlin Native
- Kotlin Multiplatform
- Kotlin/JS
- Kotlin/Multiplatform
- Gradle
- For whatever reason I've graduated in Bsc Economics...
An addon for Elder Scrolls Online to provide a minimap functionality.
License: Apache License 2.0
The minipap shown zone should be independent from the one open in the main map.
Minimap should always show the zone/subzone the player is currently in.
Publish the release on common ESO addon repositories.
Provide sensible description, contact information and link to GitHub repository.
Investigate the possibility of pooling all the map pins into a single class.
The pins only needs to know their map coordinates, zone/subzone, icon and title.
Currently only the pins shown in the main zone are visible when in the subzone. this needs to be expanded to include subzone-specific pins.
All the changes should be contained in UI:ConstructMapPins() function. This is likely to be fixed in #28.
Make MMM Update depending on FPS
example:
local lastValue = 0
local MULTIPLIER1 = 0.55
local MULTIPLIER2 = 1.25
local function GetFramerateForUpdate()
local function Refresh()
local fps = GetFramerate()
return math.ceil(2000/(fps*MULTIPLIER1+fps*MULTIPLIER2))
end
local refreshTime = Refresh()
if lastValue ~= refreshTime then
EVENT_MANAGER:RegisterForUpdate(ADDON.name .. "_UiUpdate", refreshTime, EventHandlers.OnUiUpdate)
lastValue = refreshTime
end
end
local function RegisterUpdates()
EVENT_MANAGER:RegisterForUpdate(ADDON.name .. "_CheckFPS", 2000, GetFramerateForUpdate)
GetFramerateForUpdate()
end
There're still some uncommon pin types uncovered in the MapPin class behaviour. Investigate the ZO_MapPin class and add the remaining types.
Look for ZO_MapPin:Is*() methods.
Create an initial wiki page outlining the structure.
A tooltip body behaviour needs to be implemented for MapPin of type QUEST.
The body should show the description of the current quest objective, task or step.
The new issue template should be adjusted to the ZenHub's features.
Remake pin classes to only take ZO_MapPin as a constructor argument and use the data stored there. Also create new classes for quest pin.
The general idea resolves around using this:
for i, pin in pairs(ZO_WorldMap_GetPinManager():GetActiveObjects()) do
if (pin:IsQuest()) then
ADDON.Classes.PoiPin:New(pin:GetPOIZoneIndex(), pin:GetPOIIndex(), pin:GetQuestIndex(), pin:GetPinType(), pin:GetQuestIcon(), pin.normalizedX, pin.normalizedY);
end
end
Create a class for minimap tile controll.
The class should be able to update it's assigned controls and also know about all the other existing sibling objects to prevent duplicate construction.
Fix wayshrine pins' behaviour on rotation mode.
Currently wayshrine pins are only working on non-rotating minimap. When the minimap rotation is on they rotate around themselves just like map tiles. This is unwanted behaviour, instead, they should be always facing north, but still have correct position on the minimap when it rotates.
Implement on-demand load behaviour for WayshrinePin class.
Wayshrine pins should only load when needed and reuse no longer active controls.
Setup the readme file with proper project's description.
Create an abstract class for pins pooling up common functionality.
The class should have update and constructor methods at the very least. Think about any other methods that all of the various map pins might commonly use.
Currently when zooming in/out the minimap it reconstructs the entire map eventually overflowing PC's memory. This should instead be be changed to rescaling behaviour.
Consider the possibility of splitting map construction and set-up into two separate functions.
For map tiles and icons, you will probably want to disable the pixel rounding.
Currently when you move, you get some artifacts at the seam where two tiles meet. You can fix this via
texture:SetPixelRoundingEnabled(false), e.g. self.Controls[group]:SetPixelRoundingEnabled(false) in line 63 of MapTile.lua .
AbstractPin class is now obsolete. Remove it.
Ensure that it is not being used anywhere and if it is replace that usage with Pin class.
Setup gitter chat for the repo and add to the readme file.
n/a
Finish-up writing the contributing guidelines in docs/CONTRIBUTING.md.
These should cover:
This has to extend pin class and have two controls for each scroll. One for when the pin is visible on minimap and one for when it's outside of it to indicate the direction.
All the pins should only be updated when they're active.
Pins should be enabled/disabled and updated respectively depending whether they are within minimap's visibility radius.
Implement on-demand load behaviour for map tile class.
the tiles should only load when required and otherwise reuse the controls that are no longer active.
Create a new class for the blue map target pin.
This has to extend pin class and have two controls for each scroll. One for when the pin is visible on minimap and one for when it's outside of it to indicate the direction. The class should be singleton as there can only be one target pin on the map. It also should reuse its textures. The implementation should be similar to #5.
When entering a building without a reload (only screen fade out/in) the map is not reconstructed.
The event regarding this should be found and map reconstruction hooked to it.
Clean up the code before the release.
The following points needs to be covered:
The tooltips shown in main eso map when you hover over a pin needs to be implemented for minimap as well.
Since no permission was obtained to use the current placeholder sprite for minimap wheel, a new one needs to be made and replace the currently used one.
The sprite needs to be circular, somewhat thick to hide scrolls' edges and have NSWE indicators for directions.
Tooltip body needs implementing for pin groups in MapPin class. The body should simply mimic the one in main eso map for pin groups.
You might consider adding each sub-pin tooltip as a child element to the group tooltip body.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.