Proto commits in RPTools/maptool

These 100 commits are when the Protocol Buffers files have changed:

Commit:8190d2d
Author:bubblobill

Removed property token image rotation and associated references. Fixed problem with slider not updating in SpinnerSliderPaired with mouse wheel event

The documentation is generated from this commit.

Commit:3ef565b
Author:Kenneth VanderLinde
Committer:GitHub

Merge branch 'develop' into TokenLayout

Commit:76ba3eb
Author:bubblobill

Added Drawing shapes; ArcDto,CubicCurveDto,LineDto,PolygonShapeDto,QuadCurveDto,RoundRectangleDto,Rectangle2DDto

Commit:55ef9fd
Author:Reverend
Committer:GitHub

Merge branch 'RPTools:develop' into TokenLayout

Commit:1e2743a
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add direction to walls Each wall can have a main direction (`Left`, `Right`) or be bidirectional (`Both`). Relative to the main direction, specific uses (`Sight`, `Light`, `Aura`) can be configured to respect the main direction (`SameDirection`), work in the opposite direction (`ReverseDirection`), ignore directionality and be bidirectional (`ForceBoth`) or ignore the wall entirely (`Disabled`). Movement also supports the `ForceBoth` and `Disabled` cases, but does not support direction itself and so does not have the `SameDirection` and `ReverseDirection` cases. Internally, the representation of walls got more complicated, but a future change will work to reduce that again. `WallInternal` now sports a mutable `WallData` that is capable of being overwritten and merged with `WallData` from other walls. Individual walls can have their data be updated through the new `UpdateWallMessage` message. The `WallData` is what carries the directional information for the wall. A new control panel gives access to changing wall properties. The currently selected wall will have its state reflected in the control panel, and modifying the values there will update the wall. When drawing a new wall, the current values from the control panel will be applied. The XML for walls has been extended to store the wall's direction and modifiers as child elements.

Commit:bd46d06
Author:bubblobill
Committer:bubblobill

Many things coming together

Commit:89c1411
Author:bubblobill

Updated TokenDto to handle refactored property names and new property imageRotation

Commit:7ef8eac
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add WallTopology to Zone This includes adding extending `ZoneDto` to include `WallTopologyDto`.

Commit:f77eeee
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Mark legacy masks as masks, including in server commands As time goes on, we will rely less and less on masks and more and more on walls. Still, walls cannot completely replace masks and so masks need to remain a support, if separate, type into the future.

Commit:1bdc612
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Introduce new topology types `MaskTopology` represents legacy masks as polygons. This is used in lighting and pathfinding algorithms, though the original `Area` is maintained and serialized in the model for the sake of existing tools and macros. `WallTopology` is a new form of topology, made of thin walls that form a graph. Edge wall (edge) blocks both vision and movement from any direction. The plan is to extend this in the future to control vision and movement separately, and to add directionality to the wall, but for now only the basic option is available. `WallTopologyConverter` ensures that `WallTopology` can be serialized without exposing the implementation details, and to make the XML look reasonable.

Commit:b58cf07
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add support in the model for unique light sources - Methods on `Token` to add or delete unique light sources and look them up. - Support in `AttachedLightSource` to resolve against a `Token` in addition to a `Campaign`. - Support in `TokenDto` to transfer unique light sources. Attaching (turning on) a unique light source works exactly as for a campaign light source: the ID is added to the list. The only difference in behaviour between unique and campaign light sources is where the definition lives.

Commit:56e4b57
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add support for landing maps Each `Campaign` now stores the ID of its landing map, if one is set. The user sets one using from the app menu, _Map > Set as landing map_. When a player client connects and the campaign has a landing map set, the client will look up that landing map to display first. This does not apply to GM clients. Also, the local client will prefer to stay on the current map if possible when starting and stopping a server.

Commit:c8f24b2
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Remove the topology type set and related DTO

Commit:3717c62
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Deprecate now-unused drawing types `Oval`, `Rectangle`, and `Cross` no longer serve a purpose and so have been deprecated. It is possible for existing campaigns to have these serialized in them, so we are keeping the structure around. However, each one will `readResolve()` itself into a modern type. Also be clear about the set of supported types in `ShapeDrawable`. The new `ShapeDrawable#getShapeTypeName()` outputs one of `"Rectangle"`, `"Oval"`, `"Polygon"`, `"Area"`, or `"Unknown"`, which callers can use to make meaningful decisions about the general type of shape wrapped in the drawable. This matters especially for ellipses, where several places refers to the simple name of `Ellipse2D.Float`, which is just `"Float"`. Now they refer to `"Oval"`, or use proper type checks where needed.

Commit:3bbba68
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Increase number of shapes supported by protobuf `Path2D` is now transferable in addition to to `Area`, with the latter now being implemented on top fo the former. All `Ellipse2D` are now transferable, whereas previously only `Ellipse2D.Float` was allowed. We always use double precision for ellipses.

Commit:71b92b7
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Perform zone topology edits through server commands The `ServerCommand.addTopology()` and `removeTopology()` have been merged into a single `updateTopology()` that handles both drawing and erasing. It also applies the changes to the local client so caller's don't have to remember to do that. All callers were already well-behaved here, but this change just cleans them all up and avoids the repetition conditions.

Commit:e90a627
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Mark Grid fields as transient The movement keys, zone, and cell shape have no business being serialized. The cell shape was also removed from the DTO to match this.

Commit:727629d
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Fix edge projection for stretched hex grids The edge projection was not always recalculated when the dimensions change. On top of that, it is not always half the edge length - that's only for regular hexagons. Now we always recalculate edge projection and edge length together, and relate them to the diameter propertly. There was one place where edge length was used where the diameter should have been used. Also remove a bunch of unused and commented out code, and caches for things that don't need to be cached.

Commit:bd10fbc
Author:cwisniew

Revert "Merge branch 'develop' into release-1.15" This reverts commit cf937dab7f2c186164ef7929fa566988365b51ee, reversing changes made to 4ac15e49b074261fa54c1fb290525997f120c563.

Commit:1ca8cc9
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Remove zone ID from templates Now that zones are passed via methods, the templates don't use the zone ID for any real functionality anymore. Removing it cleans up a bunch of code, and avoids the need to make sure that templates have their zone IDs updated in various case.

Commit:6de6d88
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Rework LineCellTemplate path and bounds `calcPath()` has been simplified to essentially Bressenham's algorithm. It only calculates and returns a path, while `getPath()` (previously unused) will call it if needed. `getBounds()` now correctly accounts for the path's quadrant and the position of the first vertex to produce a correctly located and sized bounding box. This method was also simplified to only look at the two endpoints rather than iterating over the entire line. All fields except `pathVertex` are now marked as `transient` since they can be recovered from only `getVertex()` and `pathVertex`. Correspondingly, the quadrant is not longer part of the DTO, and the serialized XML is much smaller. With the above changes in, it was natural to simplify `LineCellTemplateTool` to avoid a lot of case work, especially in not relying on mutations of `getPathVertex()`.

Commit:9eda357
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Remove unused mouse slope state from LineCellTemplate

Commit:5861288
Author:cwisniew

Merge branch 'develop' into better-labels-dev-merge

Commit:02201a3
Author:cwisniew

Add border width, colour, arc to text ui

Commit:160771f
Author:cwisniew

added label border width/color

Commit:fb4fc9f
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Remove the unique light sources feature The refactorings that went along with the feature are still in place as they are good on their own. But unique light sources themselves have been removed along with the DTOs, UI, and I18N changes.

Commit:bcb85a2
Author:cwisniew

Update labels

Commit:1f8556f
Author:ColdAnkles

Standardised around "ignores-vbl" and added additional required function updates. Removed Ignores VBL from SightSyntax.java as not wanted.

Commit:0822c1a
Author:Cold_Ankles
Committer:GitHub

Merge branch 'develop' into pass-through-lights

Commit:a172e3e
Author:ColdAnkles

Redone around the saner language of "ignore-vbl". Corrected some unnecessary calls and null checks. Updated Language for GB and AU.

Commit:4f5304e
Author:ColdAnkles

First attempt at lights-through-walls option.

Commit:85d4250
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Change BEAM lights and sights to accept width instead of arc Width is measure in map units, so works the same as ranges.

Commit:c5a4141
Author:bubblobill

Refactored LINE to BEAM Undid unnecessary changes to LightSourceCreator Added BEAM to getShapedArea in IsometricGrid Removed commenting on some code in Grid Fixed issue with BEAM not being parsed for sight in Campaign Properties.

Commit:f752cd6
Author:bubblobill

All this in order to introduce ShapeType.LINE

Commit:9c5cc26
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Simplify drawable management in Zone Rather than maintain separate fields for each layer, the fields `drawables`, `gmDrawables`, `objectDrawables`, and `backgroundDrawables` now packaged into a single map so that the required list can be looked up according to layer. Serialization backwards compatibility requires the original fields to still be maintained, but at runtime only the new `drawablesByLayer` is relied on, even for DTO conversions. Some other simplifications were done in this area, such as: - The fields can be `@NonNull` by ensuring the initializer and `readResolve()` set them. - The copying of the lists in the copy constructor can use the `LinkedList` constructor rather than `Collections.copy()` (`Collections.copy()` does not copy the elements themselves despite what the comments seemed to suggest). A bug fix was applied where zone IDs were only being consistently set for token-layer templates, and not for the others. We also now have `Zone.getDrawnElements(Zone.Layer)` that provides external access to the drawing by layer, rather than keeping four separate methods that require hardcoded layer names due to the method naming. This increased flexibility enabled a similar refactoring in `ZoneRenderer` so that the serparate drawable renderer fields could be handled uniformly in a single map as well.

Commit:5a130bf
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Implement light sources on tokens It is now possible for tokens to carry light source definitions, much like campaigns can. These new light sources are called "unique lights" as they are only available to the token that defines them. If any unique light source are defined on a token, they can be accessed like any other lights via the right-click menu, under the special category "Unique". In order to support lookup of such light sources, `AttachedLightSource#resolve()` now also accepts a `Token` for context, in addition to the `Campaign`. The token is checked first for a matching light source, then the campaign is checked as a fallback. For networking, the `TokenPropertyValueDto.lightSource` field was added back in because creating a unique light source now requires the complete definition to be passed. This commit does not add any way for a user to add any light sources to token. That will come later.

Commit:69c342d
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Simplify existing light source system The protocol for adding and removing lights was streamlined: since the light source GUID is the only piece needed for this functionality, that is now all that gets passed around via protobuf. Previously the entire light source definition was passed around for these operations. `AttachedLightSource` is now more encapsulated so that resolving `LightSource` from `GUID` is easier. Callers no longer need to bother with grabbing the `GUID` from the `AttachedLightSource`, nor do they have to know where to use it. Instead they can just ask the `AttachedLightSource` to do the lookup, providing only the `Campaign` for context. This will enable future changes to how light sources can looked up. `AttachedLightSource` has also been made immutable by finalizing the class and `lightSourceId` field.

Commit:644ed15
Author:ColdAnkles
Committer:Cold_Ankles

Beginnings of Cover VBL implementation.

Commit:d260969
Author:ColdAnkles

Beginnings of Cover VBL implementation.

Commit:1212b5c
Author:Craig Wisniewski

Descirptions for aliases

Commit:4a6c0ef
Author:cwisniew

Add display name to token property type and dto

Commit:ba076fe
Author:cwisniew

Add default property

Commit:aba8cf0
Author:cwisniew

store stat sheet properties not just id

Commit:46b71b4
Author:Craig Wisniewski

Add Stat Sheets to tokens

Commit:adffa21
Author:Craig Wisniewski

update property type stat sheet

Commit:5a78206
Author:Craig Wisniewski

move stat sheet to seperate config file

Commit:6db48bf
Author:Craig Wisniewski

Merge branch 'develop' of https://github.com/RPTools/maptool into feature-statsheet-overlay

Commit:32b58ad
Author:Craig Wisniewski

Fixes for Hero Lab tokens

Commit:b9934fb
Author:Craig Wisniewski

Add stat sheet to add-ons

Commit:5162a7e
Author:Craig Wisniewski
Committer:GitHub

Merge pull request #3894 from sauliuskarmanovas/Issue-3890-MsgPlayerFinishedLoadingZone Show player loading status

Commit:d95f1e4
Author:sauliuskarmanovas
Committer:GitHub

Merge branch 'develop' into Issue-3890-MsgPlayerFinishedLoadingZone

Commit:b8d037c
Author:Kenneth VanderLinde

Add lighting style to the ZoneDTO

Commit:b7cd613
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Handle nullabilty when converting LookupTable to DTO Each reference field in `LookupTable` and `LookupEntry` is marked as `@Nullable` or `@Nonnull` for clarity. `@Nonnull` is enforced for deserialized fields in `readResolve()`, with corresponding `null` checks in accessors being removed. Several `Boolean` accessors have been changed to `boolean` since nullability for these fields in an internal detail. In `toDto()`/`fromDto()`, all `@Nullable` fields are checked first whether a value exists prior to converting. The `visible` and `allowLookup` flags are now included in the copy constructor so that copied tables have the same flags set.

Commit:541bb49
Author:sauliuskarmanovas
Committer:Saulius Karmanovas

Show players current zone and loading status in connections window

Commit:60201b0
Author:Thomas Kunze

add *notestype to protobuf and fill them

Commit:c8916fd
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add a lumens overlay and make lights environmental The new lumens overlay is a visualization of the light strength at each point of a map. The strength of the light is determined by its lumens and - as always - darkness obscures light of equal or lesser lumens. The lumens overlay treats lumens less than zero as darkness and renders dark areas as black. On the other end, lumens of 100 or greater are treated as bright areas, and are rendered as a nearly transparent white. The final special case is lumens equal to zero, which is a representation of daylight and is not included in the lumens overlay. Any other lumens values are drawn as shades of grey, with low levels being nearly black, and with higher levels being closer to white. The environmental lights are an improvement to the aesthetics of lights. Lights now blend with one another "additively" (technically according to the Screen blend mode) so that they get brighter when they overlap. After blending the lights, the results are blended with the map using a blend operation that brightens the map while preserving details (similar to overlay blend mode and soft lighting). This make lights look more like they illuminate the map rather than sit on top of it. Both of these features can be toggled in the *View* menu depending on user preferences and game requirements. The lumens overlay can also have its opacity configured in the Preferences dialog, and the older light and darkness opacities have been removed. Lights no longer have an opacity congiguration since they are conceptually part of the map and not a layer rendered on top. In order to make the lumens overlay as useful as possible, the lumens values are now atached to individual light ranges rather than to entire light sources. Existing campaigns will have their light sources' lumens values copied to each range. The **Campaign Properties** dialog's _Light_ tab represents per-range lumens as by appending the lumens after the optional range color. So these are now valid ranges: ``` r#ff0000+100 r#aa0000+50 r+100 ``` These define, respectively, a saturated red range at 100 lumens, a desaturated red range at 50 lumens, and a colourless range at 100 lumens.

Commit:792c5ed
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Remove Direction enum since it is always CENTRE anyways

Commit:796eb40
Author:Thomas Kunze

reintegrate net/rptools/lib ressources

Commit:c0fdaa6
Author:thelsing
Committer:GitHub

Merge branch 'RPTools:develop' into develop

Commit:ac71ece
Author:Thomas Kunze

add data to assetDto

Commit:a0297ea
Author:Phergus

Fix for NPE when using removeTokenFacing() Rather than try to pass a null through the DTO process, added new update type for removeFacing that doesn't take a parameter.

Commit:ff2cf5f
Author:Craig Wisniewski

Retain GM macros accross server start

Commit:a3c4e74
Author:Thomas Kunze

initialise CampaignProperties with default values only when wanted

Commit:91f2256
Author:Kenneth VanderLinde

Most of HeroLabData's (String) fields are able to be null

Commit:9736e3b
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Explicitly initialize some more Token fields to avoid nulls The `Token` class expects to have a non-null shape, type and layer. Up until now, the fields could be `null`, although the accessors for these fields would detect this and return a real value (`readResolve()` does similar). This change makes it so that the Token class' initializer also sets these fields to their default values, so that all constructors will respect the defaults as well. This also means there is no more worry about these fields being null, which means the accessors can be simplified some and `toDto()` does not also have to handle `null`s. In a similar vein, we can infer from the `readResolve()` logic and usage that `name` and `exposedAreaGUID` do not need to support a `null` value either, and so this change also updates these fields to be initialized to real values.

Commit:7b2d457
Author:Kenneth VanderLinde
Committer:Kenneth VanderLinde

Add Hill VBL, Pit VBL and MBL to tokens New features --- - Macro functions for manipulating token topology - `getTokenHillVBL` - `getTokenPitVBL` - `getTokenMBL` - `setTokenHillVBL` - `setTokenPitVBL` - `setTokenMBL` - `transferHillVBL` - `transferPitVBL` - `transferMBL` - Token topology is rendered in distinct colours for each topology type. - Color sensitivity for auto-generated topology is remembered per topology type. Internal changes / refactorings --- - Token model now has fields for Hill VBL, Pit VBL and MBL in addition to the existing Wall VBL. - Token model update command `setVBL` has been replaced by `setTopology` which requires a topology type to be sent as well as the area. - Protobuf Token DTO has been extended to support the new fields. - The macro function code under `Topology_Functions` was refactored so that each kind of function is handled by a separate method rather than keeping all that code in a single method under an if/else chain. - `Zone` and `ZoneView` only expose topology via `TopologyType` rather than having distinct methods for each kind of topology. - Topology caching in `ZoneView` has been revamped. - `ZoneView` no longer caches the token topology `Area`s and instead just caches the total topology of the map plus tokens. - `ZoneView` now caches the topology `Area`s for each topology type instead of just the `AreaTree`s. This benefits the A* walker because it needs the `Area`s but previously had to rely on the expensive `AreaTree`s. - The cached `AreaTree`s are now only needed internally to `ZoneView`, for passing to the FoW calculations. - Most methods with the term "VBL" in the name now use "topology" to make clear that they are more general. Bug fixes --- - Subtle issue in A* algorithm to only subtract token topology from total topology of the same type. Previously a token's Wall VBL would be subtracted from all topologies. VBL => topology

Commit:30367a6
Author:Richard Maw
Committer:Richard Maw

Handshake: Change symmetric key algorithm to CBC The "AES" cipher is "AES/ECB/PKCS5Padding". ECB mode ciphers are susceiptible to replay and chosen-plaintext attacks and while there's no known possible vulnerabilities using them some cipher suites may not support ECB mode as a precaution which makes interoperability more difficult. The 16-byte block size already makes a codebook attack impractical, but adding an IV makes it even less so as recorded codes from previous sessions can't be reused.

Commit:60a2de6
Author:thelsing
Committer:GitHub

protobuf changes (#3348) * start with protobuf stuff * start with protobuf stuff * tested addTopology * changeZoneDisplayName -> protobuf * clearAllDrawings -> protobuf * clearExposedArea -> protobuf * start with draw -> protobuff (Mapping missing) * add more mapping methods * add mapping for Shape. Drawing should work now. Testing needed. * spotless * test and correct draw server call * editToken + putToken -> protobuff TODO: Mapping Token <-> TokenDto * editToken + putToken -> protobuff TODO: Mapping Token <-> TokenDto * add mapping Token -> DTO * fix merge * add mapping for Token and HeroLabData * add mapping for MacroButtonProperties * add mapping for AttachedLightSource and Pathd * putToken + editToken done * execFunction, enforceZoneView, enforceZone, enforceNotification, to protobuf * exposePCArea, exposeFoW, execLink, to protobuf * movePointer, message, hidePointer, hideFoW, heartbeat, getZone, getAsset, to protobuf * putAsset, playerDisconnected, playerConnected, to protobuf * fix merge * putLabel + putZone -> protbuf TODO: Mapping for zone * refactor mappings. Missing Mappings Grid, InitiativeList, Zone(todto) * Mapping for Zone + InitiativeList. Missing Mappings Grid * spotless * Grid mapping * restoreZoneView, renameZone, removeZone, removeTopology, removeTokens, removeToken, removeLabel, removeAsset, to protobuf * fix merge * sendTokenToBack -> protobuf * add dto for Campaign + Tokenoverlays * add a bunch of mapping code. Does not build yet. * all mapping for setCampaign done * convert more message to protobuf * added all protobuf definitions * get rid of Command enum * repaired ServerMethodHandler and rename to ServerMessageHandler * repaired ClientMethodHandler and rename to ClientMessageHandler * repaired all * removed hessian * clean up * clean up * clean up * clean up * clean up * merge develop * fix NPEs * spotless * fix asset transfer * more fixes * more fixes + heartbeat disabled Co-authored-by: Phergus <34379254+Phergus@users.noreply.github.com> Co-authored-by: Craig Wisniewski <craig.wisniewski@gmail.com>

Commit:c6e6a8b
Author:Craig Wisniewski

Readme/License

Commit:26b098d
Author:Craig Wisniewski

updates to dialog

Commit:6ece5bb
Author:Craig Wisniewski

Pending connections is now disabled if not on server, and client gets a better message if denied

Commit:39ab610
Author:Craig Wisniewski

.

Commit:3a85114
Author:Mike Perino

Resolves #2001 and #1104 by adding in three checkboxes on server start. Two use existing server policy entries to stop certain player behaviors on server start and the other stops players from inserting tokens from their own client if the GM does not wish them to. This fix feels a bit gross but maybe I did it correctly? Maybe someone who knows swing better should take a quick look. Merge develop

Commit:7f79808
Author:Craig Wisniewski

add-on onInit functions

Commit:1ad513f
Author:Craig Wisniewski

events start

Commit:b17f441
Author:Craig Wisniewski

typos

Commit:36880ab
Author:Mike Perino

If I was a better planner I would've done this on two different branches but oh well. Resolves #2001 and #1104 by adding in three checkboxes on server start. Two use existing server policy entries to stop certain player behaviors on server start and the other stops players from inserting tokens from their own client if the GM does not wish them to. Finishing up some testing because my drag and drop on my dev builds seems to be broken but I'm unsure if that is due to any of my changes or something weird with how I'm building/running it.

Commit:b9b3016
Author:Craig Wisniewski

add export/import undefined data

Commit:06dc086
Author:Craig Wisniewski

send data on connect to server

Commit:97f61f3
Author:Craig Wisniewski

Sending of game data to clients

Commit:c49ca01
Author:Craig Wisniewski

save and load game data

Commit:039d5d9
Author:Craig Wisniewski

Merge branch 'develop' of github.com:RPTools/maptool into game-data

Commit:61086d5
Author:Craig Wisniewski

add macro functions for testing

Commit:22caadf
Author:Mike Perino

Okay things appear to be working as intended. Took a little longer than expected, but appears to be functioning. #2777

Commit:fc278aa
Author:Craig Wisniewski

refactor

Commit:ad4d1bc
Author:Craig Wisniewski

rename githuburl as giturl

Commit:a14a18c
Author:Craig Wisniewski

add library dto to successful msg

Commit:d53cdeb
Author:Craig Wisniewski

rename drop in to add-on

Commit:c233065
Author:Craig Wisniewski

save and load campaign

Commit:6026e2d
Author:Craig Wisniewski

UDF support

Commit:2b3de56
Author:Craig Wisniewski

macros

Commit:add8d66
Author:Craig Wisniewski

refactor of asset class

Commit:94a0d39
Author:Craig Wisniewski

Add methods to fetch info

Commit:705ce6a
Author:Craig Wisniewski

import

Commit:c93cea4
Author:Craig Wisniewski

add proto

Commit:b1c7f7f
Author:Craig Wisniewski

Remove old pubkey fles

Commit:3c6c5a9
Author:Craig Wisniewski

handshake refactoring

Commit:ca7ef5f
Author:Craig Wisniewski

start merge

Commit:d19a03c
Author:Thomas Kunze

fix connection establishment

Commit:8471dc2
Author:Thomas Kunze

add webRTC support