Git Product home page Git Product logo

candy's Introduction

Hello

My name is Teemu and I am a game programmer thing or something. I've worked at Frozenbyte Oy since August 2016 as an engine, console and general gameplay programmer. I graduated from Kajaani University of Applied Sciences in December 2014 with a bachelor's degree in information technology (fin. tietojenkรคsittelyn tradenomi, peliala) and specifically game and game engine programming.

I like penguins ๐Ÿง๐Ÿง๐Ÿง๐Ÿง๐Ÿง๐Ÿง๐Ÿง

And cats ๐Ÿˆ๐Ÿˆ๐Ÿˆ๐Ÿˆ

candy's People

Contributors

sonaza avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

merijn

candy's Issues

Candy-2.0.1 error hiding bar in combat

1x [ADDON_ACTION_BLOCKED] AddOn 'Candy' tried to call the protected function 'CandyToyBoxQFrame:Hide()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function `Hide'
Candy\core.lua:284: in function <Candy\core.lua:283>

I am sorry I do not have more detailed information but I was in an mythic dungeon when this error popped. I have a few bars that hide in combat

Bug - disabling an addon and in turn it's candy bar that another bar is relative to hides the other bar

This is a tough one because it might be something you can't account for but just a heads up.

I use buggrabber and bugsack to capture lua errors. On live I setup the candy bars how I like them and copied over the config to beta to see how it owrks. Everything shows fine except for bugsack. Now if I went into the config and removed the settings for bugsack then re-added it via "create a new candy bar" it shows just fine and no problems at all.

I really hope this is just a beta thing but if that happens to others when legion goes live, this is a heads up that bugsack is one of those that you can test against.

Not even sure if it is anything you can test against.

Also, bug sack defaults to "0" as the ldb text

Feature Request: Screen edge snapping

While trying to set up my Candy bars, I'm finding it very difficult to get them to align with the edge of the screen, especially in the corners. There seems to be some kind of snapping, but it's not generous enough for me to be sure the elements are actually snapping edge-to-edge. Sometimes it feels like I just dragged it into exactly the right spot accidentally. I think it'd be very useful to provide automatic docking to the edges and corners of the screen in order to elimate small pixel gaps.

It may also be beneficial to dock Candy bars that are dragged partially off screen in any one direction; this would make it easy to align your Candy bars to the edge of the screen even without another form of easy docking.

Custom callback lua condition text nil error 2.0.7

so out of curiosity, I tested an example callback you have as an example

local durability = tonumber(strmatch(text,"(%d+)")) or 0; return durability <= 50;

It throws this lua error trying to validate it.
At first I thought the callback might be bad but I have an existing lua condition that never threw an error when clicking validate prior to 2.0.6/2.0.7

return UnitLevel("player") == GetMaxPlayerLevel();

Candy\options-Options.lua:36: attempt to call method 'GetModuleText' (a nil value)
Candy\options-Options.lua:36: in function <Candy\options.lua:21>
Candy\options-Options.lua:73: in function `OnCancel'
FrameXML\StaticPopup.lua:4428: in function `StaticPopup_OnClick'
[string "*:OnClick"]:1: in function <[string "*:OnClick"]:1>

Locals:
script = "local durability = tonumber(strmatch(text,"(%d+)")) or 0; return durability <= 80;"
broker = "gmDurability"
script = "return (function(text, icon) local durability = tonumber(strmatch(text,"(%d+)")) or 0; return durability <= 80; end)(...)"
compiled = <function> defined Candy-Visibility-gmDurability:0
scriptError = nil
_ = CandygmDurabilityFrame {
 0 = <userdata>
 isVisible = true
 fadein = <unnamed> {
 }
 data = <table> {
 }
 fadeout = <unnamed> {
 }
 broker = "gmDurability"
 background = CandygmDurabilityFrameBackground {
 }
 text = CandygmDurabilityFrameText {
 }
}
module = <table> {
}
(*temporary) = nil
(*temporary) = <table> {
 SetDefaultModuleLibraries = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:398
 IsPlayerInAGroup = <function> defined @Candy\core.lua:195
 EnableModule = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:363
 modules = <table> {
 }
 baseName = "Candy"
 IterateEmbeds = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:473
 UnlockBars = <function> defined @Candy\core.lua:619
 RemoveCandy = <function> defined @Candy\core.lua:371
 MODIFIER_STATE_CHANGED = <function> defined @Candy\core.lua:173
 GetFrameKeyPoints = <function> defined @Candy\core.lua:833
 PLAYER_REGEN_DISABLED = <function> defined @Candy\core.lua:164
 CompileVisibilityScript = <function> defined @Candy\core.lua:235
 GetActiveBrokers = <function> defined @Candy\options.lua:395
 IsEnabled = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:482
 PlayerInInstance = <function> defined @Candy\core.lua:185
 DisableModule = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:381
 UpdateVisibility = <function> defined @Candy\core.lua:250
 RegisterMessage = <function> defined @AngryAssignments\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:116
 UnregisterMessage = <function> defined @AngryAssignments\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:179
 StripColor = <function> defined @Candy\core.lua:208
 db = <table> {
 }
 SetEnabledState = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:455
 enabledState = true
 RegisterEvent = <function> defined @AngryAssignments\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:116
 DataObjectCreated = <function> defined @Candy\core.lua:433
 IterateModules = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:468
 ContextMenu = CandyMenuFrame {
 }
 PrepareTooltip = <function> defined @Candy\core.lua:754
 PET_BATTLE_OVER = <function> defined @Candy\core.lua:181
 OnInitialize = <function> defined @Candy\core.lua:49
 NewModule = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:266
 GetModule = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:241
 PET_BATTLE_OPENING_START = <function> defined @Candy\core.lua:177
 defaultModuleLibraries = <table> {
 }
 CloseOptions = <function> defined @Candy\options.lua:414
 UpdateCandyBars = <function> defined @Candy\core.lua:199
 ActiveBars = <table> {
 }
 OpenCandyOptions = <function> defined @Candy\options.lua:449
 ChangeJustify = <function> defined @Candy\core.lua:637
 GetName = <function> defined @AngryAssignments\libs\AceAddon-3.0\AceAddon-3.0.lua:310
 SetGlobalFrameStrata = <function> defined @Candy\options.lua:439
 FrameHasParent = <function> defined @Candy\core.lua:862
 ConvertAnchor = <function> defined @Candy\core.lua:647
 name = "Candy"
 SetGlobalFontOu

Thought: Add option to hide oder hall bar?

That order hall bar is one of the worst things Blizzard has added. It's obtrusive and ugly as sin.

Any thought on adding a simple setting to either hide or fade out the order hall bar?

Some ideas:

https://mods.curse.com/addons/wow/hideorderhallbar

https://github.com/riphie/Riphie_OrderHall

No I am not asking to have this added because there are tons of addons and it is easy enough to build one to simply hide it but I think it would be a nice little addition and you could call the function "NukeFromOrbit" ;)

Feature Request: Pixel Perfect Positioning

I'd like to request X and Y coordinate input boxes for any Candy bar for pixel perfect placement. It may also be necessary/desireable to have a drop-down menu to select anchor - this way bars could explicity grow to the left, right, or from the center. Growing from the center doesn't seem to be a feature I can find currently implemented.

addons that don't put a text tag in the ldb options section don't show text on the candy bar

Wanted to put this as a new ticket so it can be a separate issue.

I am testing a new addon for legion called worldquest. It's an ldb addon but I noticed that they tag a label tag for the databroker object but not a text tag. This means that if the icon is not displayed on the candy bar, it is simply a blank bar. They have label set and when I edited the lua file and added text it shows up on candy's bar for this addon.

Any chance you can account for sloppy coding by others and add in a check for label in the databroker object if the text tag is missing?

Here is the snippet of their code to show what I mean

BWQ.WorldQuestsBroker = ldb:NewDataObject("WorldQuests", {
type = "launcher",
label = "World Quests",

When I add

text = "World Quests",

it shows on candy

Some bars removed upon reload/relog

When adding a bar for a few particular addons, the bar will disappear upon reload/relog. I don't know what commonalty these addons have, but these are the addons I have found that demonstrate this issue with Candy (I'm sure there are others out there):

ArkInventory (https://www.wowace.com/projects/ark-inventory)
Buffet (https://www.wowace.com/projects/buffet)
Rematch (https://wow.curseforge.com/projects/rematch)
ShuckIt (https://mods.curse.com/addons/wow/shunkit)

These four work with other LDB display addons and only disappear in Candy. Thank you for your time and attention to detail.

Suggestion - option to lock tooltip in combat

Since some LDB addons tend to not respect combat locking and can throw errors in combat, I used other databroker's options to lock tooltips in combat.

Now I see you have the option to not show the ldb in combat which is great but would you be interested in adding an option to lock the tooltip in combat? I know I can add a custom LUA command to do that but as most people aren't familiar with LUA and it might be a nice feature to prevent errors of these other addons that are not coded the best. Locking per ldb would also be wonderful because that still leaves addons like skada open to clicking in combat.

Sometimes you still want to see the ldb's text display but you may accidentally mouse over it trying to click on that one squirrely trash mob and WHAM error!

BTW love the concept of this addon. Finally I can put objects where I want instead of just on a bar.

Bug in Prepatch on PTR

when i lock the bars this error apears. Is bartender the Proplem?

704x Candy\core.lua:285: attempt to index global 'C_PetBattles' (a nil value)
[string "@Candy\core.lua"]:285: in function `UpdateVisibility'
[string "@Candy\core.lua"]:660: in function `LockBars'
[string "@Candy\options-Options.lua"]:260: in function <Candy\options.lua:259>
[string "=[C]"]: ?
[string "@Bartender4\libs\AceConfig-3.0-3\AceConfigDialog-3.0\AceConfigDialog-3.0-81.lua"]:51: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:49>
[string "@Bartender4\libs\AceConfig-3.0-3\AceConfigDialog-3.0\AceConfigDialog-3.0-81.lua"]:847: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:668>
[string "=[C]"]: ?
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <...aceBartender4\libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function `Fire'
[string "@Bartender4\libs\AceGUI-3.0-41\widgets\AceGUIWidget-Button.lua"]:22: in function <...der4\libs\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:19>

Intial load of addon newly installed - version 1.0.0

Upon opening the interface options and candy settings for the first time, this happened:

This happens both on live and in beta

Candy\options-Options.lua:307: bad argument #1 to 'format' (string expected, got nil)
C: in function format' Candy\options-Options.lua:307: in function <Candy\options.lua:302> (tail call): ? ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:249: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:197> ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:1178: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1055> ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:1082: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1055> ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:1588: in functionFeedGroup'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:1868: in function `Open'
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0-61.lua:1896: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1894>
(tail call): ?

[string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?
Masque\Libs\AceGUI-3.0\AceGUI-3.0-34.lua:314: in function Fire' ...GUI-3.0\widgets\AceGUIContainer-BlizOptionsGroup.lua:20: in function <...GUI-3.0\widgets\AceGUIContainer-BlizOptionsGroup.lua:19> [C]: in functionShow'
FrameXML\InterfaceOptionsFrame.lua:28: in function InterfaceOptionsList_DisplayPanel' FrameXML\InterfaceOptionsFrame.lua:46: in functionInterfaceOptionsListButton_OnClick'
[string ":OnClick"]:2: in function <[string ":OnClick"]:1>

Locals:
nil

Seems all that may be needed is a logic check to make sure data.icon is not nil?

PetBattle error in TBCC

Candy throws continous errors in TBCC.

The error points to line 285
specifically:

			if (not inClassicMode) then
				if (visibility.hideInPetBattle and C_PetBattles.IsInBattle()) then
					shouldShow = false;

inClassicMode is evaluated in line 21
local inClassicMode = (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC);
and does not evaluate as TRUE in TBCC,

as a workaround i replaced line 21 with local inClassicMode = true;

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.