PDA

View Full Version : FGU Early Access - Developer Considerations



Moon Wizard
August 17th, 2019, 21:18
There are a number of changes that will come with FGU that will affect content developers (including modules, rulesets and extensions). I will attempt to summarize here over time as I collate from our notes and feedback.

Thanks,
JPG

Moon Wizard
December 10th, 2019, 00:30
General UI Changes


Local mode has been removed. Users must create a campaign to import/edit/export characters.
Tokens can no longer be placed on desktop directly. (Use hot keys instead.)
Lighting commands are deprecated.
Middle click dragging in window lists no longer scrolls list.
Middle click dragging in number fields no longer changes numbers.
Middle click no longer resets number, link and dice fields by default.
Modal windows deprecated.
Image control client view locking deprecated.
Dice can no longer be moved and locked elsewhere on desktop.

Moon Wizard
December 10th, 2019, 00:31
Module and Graphic Pack Developers


Tokens, portraits and images can be placed in the matching subfolder of the FGU data folder (i.e. "tokens/", "portraits/", "images/"). These will show up in the Asset View within FGU.
These same graphic assets can be bundled as ZIP files with the appropriate file extension to match (i.e. ".tpk", ".ppk", ".ipk"), and placed in the same subfolder.
For modules, any image or token graphics that you want to be shared in the Asset View must be included in the module ZIP/folder data structure as the appropriate subfolders (i.e. "tokens/", "images/"

Moon Wizard
December 10th, 2019, 00:31
Ruleset/Extension Developers - API Tag Changes

Changed Behavior

font: FGF font files are no longer supported. Every font asset must have a <ttf> sub-tag and associated TTF font file; or the default fallback font built into the FGU client will be used.


NOTE: If the TTF fonts that you choose do not contain all the Latin characters including Extended A and B characters, then those characters will not show up in the tabletop UI when displaying that font.

Additions

assetviewcontrol


Removals / Deprecations

categoryselectioncontrol
categoryselectionsettings
formattedtextcontrol.footer (Use separate generic control instead.)
imageupdatefolder (Always uses campaign images folder.)
listcontrol.footer (Use separate generic control instead.)
properties.dependency
properties.exclusiongroup
replaces
tokenbag (Use assetviewcontrol instead.)
tokenroot (Always uses ruleset tokens folder.)
windowclass.datasource (Use Interface.openWindow instead.)

Moon Wizard
December 10th, 2019, 00:31
Ruleset/Extension Developers - API Function Changes

Changed Behavior

Interface: All dialog APIs require a callback function as first parameter
DB.getCategory: Returns string
DB.getValue: Returns dice expression (if compatibility >= 4)
DB.setValue: Dice input format can be string (i.e. dice expression)
databasenode.getCategory: Returns string
windowinstance.createControl: No longer forces instant layout, but layout is scheduled. If needed, use onFirstLayout event to capture initial control sizes based on final layout.


Additions

Interface: dialogColor, dialogColorClose, dialogMessageClose, dialogFileClose, getDistanceBaseUnits, getDistanceDiagMult, getDistanceSuffix
assetviewcontrol: getPage, getPageMax, getPathFilter, getSearchFilter, getTypeFilter, getView, getZoom, setPage, setPathFilter, setSearchFilter, setTypeFilter, setView, setZoom
bitmapwidget: getBitmap
diecontrol: getValue, setValue
imagecontrol: getDistanceBaseUnits, getDistanceDiagMult, getDistanceSuffix, setDistanceBaseUnits, setDistanceDiagMult, setDistanceSuffix
imagedatacontrol: setColor
stringcontrol: getEmptyText, setEmptyText
tokencontrol: getValue, setValue
tokeninstance: getPublicEdit, getPublicVision, setPublicEdit, setPublicVision
widget: getName, getPosition, getOffset, getTooltipText, setColor, setName, setTooltipText
widgetcontainer: findWidget, getWidgets
windowcontrol: getDatabaseNode, getStaticBounds, getTooltipText, hasFocus, setFocus, setTooltipText
windowinstance: isHidden


Removals / Deprecations

Interface: addImageFile, getLighting, isFullScreen, onWindowMaximized, setLighting
User: createLocalIdentity, isLocal, setLocalIdentityPortrait
bitmapwidget: getBitmapName
chatwindow: addMessage, clear, deliverMessage, throwDice (Use Comm package instead.)
dragdata: getDieList, setDieList
imagecontrol: deleteDrawing, getTokenLockState, getTokenScale, getDrawingTool, hasDrawing, onPointerSnap, onTokenSnap, preload, resetPointers, setDrawingSize, setDrawingTool, setTokenLockState, setTokenScale, onMeasureVector(event)
tokencontrol: getPrototype, setPrototype
tokeninstance: getContainerScale, getTargetingIdentities, isActivable, isModifiable, isTargetable, isTargetedByIdentity, setActivable, setContainerScale, setModifiable, setTargetable, setTargetsVisible
windowinstance: isShared, notifyUpdate