Commit Graph

  • 9d2c371398 GuiKeyframeTimeline now draws a red stroke between two time Keyframes if the second has a smaller timestamp value than the first | https://trello.com/c/a4xZs085/ CrushedPixel 2015-07-13 15:26:20 +02:00
  • 3eca70fea4 Fixed blue stroke on GuiKeyframeTimeline possibly exceeding the Timeline's bounds | https://trello.com/c/IfTtmwso/ CrushedPixel 2015-07-13 15:18:32 +02:00
  • ff5481822a Added support for Time Keyframes in GuiEditKeyframe | https://trello.com/c/h33v5cSQ/ CrushedPixel 2015-07-13 15:10:46 +02:00
  • dccbc99d86 Add option for whether to draw a shadow of string to GuiRenderer johni0702 2015-07-13 13:56:03 +02:00
  • be3afc9e0e Created LegacyKeyframeSetAdapter to properly deserialize old, non-generic PositionKeyframes and TimeKeyframes for Path Presets CrushedPixel 2015-07-13 13:34:43 +02:00
  • 81c4659b93 Fix time freezes during rendering not working johni0702 2015-07-13 12:49:25 +02:00
  • d29cc85dc8 Fix NPE when loading a replay without marker keyframes johni0702 2015-07-13 12:21:18 +02:00
  • a9ded2bc1d Clickable and Draggable now also return booleans for whether they handled the event johni0702 2015-07-12 19:27:44 +02:00
  • bd21ed16ae Fix generics in most of the Gui interfaces johni0702 2015-07-11 17:49:06 +02:00
  • 4476993ca6 Add GridLayout which orders elements in a grid with cells of equal size johni0702 2015-07-11 17:11:18 +02:00
  • 5c05cd62ce Add GuiTextArea johni0702 2015-07-11 17:10:08 +02:00
  • 35bc9f7fae Remove preferred size and default button size Replace alignment data in horizontal and vertical layout with double value Add convenient size(GuiElement, ReadableDimension) method to custom layout johni0702 2015-07-11 15:23:17 +02:00
  • 219277f623 Add layers to Gui API so specific elements can be drawn on top of others and react to mouse clicks first johni0702 2015-07-11 01:37:31 +02:00
  • 39558701bf Reworked GuiEditKeyframe to use ComposedElements Made GuiArrowButton a subclass of GuiAdvancedButton Added consistency to ReplayHandler by renaming getMarkers() to getMarkerKeyframes() and removing redundant methods which can be accessed via KeyframeList class CrushedPixel 2015-07-13 02:03:19 +02:00
  • 66c595eb04 Marker Keyframes are now being saved in a KeyframeList in the ReplayHandler Made MarkerKeyframes names editable in GuiEditKeyframe Shows "Unnamed Marker" if Marker name is empty CrushedPixel 2015-07-13 01:21:48 +02:00
  • f55f169d01 Removed MarkerKeyframe and replaced it with generic type of Keyframe using the new Marker POJO CrushedPixel 2015-07-13 00:17:29 +02:00
  • bb05e3648d Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer and properly displays CustomImageObjects behind Path Preview Markers | https://trello.com/c/FaiMoTDK/ CrushedPixel 2015-07-12 23:33:11 +02:00
  • b4e72af48f Prevented NPEs if Asset linked to CustomImageObject is null CrushedPixel 2015-07-12 23:32:04 +02:00
  • b0429fcf44 Fixed NPE in GuiFileChooser if selected file is null CrushedPixel 2015-07-12 22:23:33 +02:00
  • ac3474f2bc The output file can now be specified in GuiRenderSettings CrushedPixel 2015-07-12 22:13:18 +02:00
  • ac79eef077 Added support for Save File Dialogs to GuiFileChooser CrushedPixel 2015-07-12 22:12:51 +02:00
  • 34e3e3c407 Sets a new CustomImageObject's default position to the player's position CrushedPixel 2015-07-12 21:08:06 +02:00
  • 75e1c17f1f Added constructor to Position which takes a BlockPos CrushedPixel 2015-07-12 21:06:54 +02:00
  • e9a73cb028 use List interface instead of ArrayList implementation in several places CrushedPixel 2015-07-12 20:55:13 +02:00
  • 06686d20a6 Added static reference to current VideoRenderer instance to allow CustomObjectRenderer to correctly interpolate Object Transformations while rendering CrushedPixel 2015-07-12 18:59:19 +02:00
  • cb912d7e54 Pass correct arguments to BoundingUtils.fitIntoBounds call in FrameRenderer to fix distorted preview CrushedPixel 2015-07-12 18:58:43 +02:00
  • 45f64faa77 Created CustomObjectRepository which can be serialized by Gson, storing all CustomImageObjects created CustomObjectRepository is now being saved to and loaded from the ReplayFile The CustomObjectRenderer uses the GuiObjectManager's timeline cursor position as interpolation timestamp for the CustomImageObjects which are drawn if a GuiObjectManager is open (instant preview) KeyframeList's add() method now removes Keyframes with the same timestamp before adding the new Keyframe Transformations class now holds default values to prevent NullPointerExceptions in methods calling getTransformationForTimestamp() Added Javadoc to Transformation POJO Created NumberValueChangeListener which can be applied to GuiNumberInput objects Made step size customizable in GuiDraggingNumberInput Changing a ReplayImageAssets image now notifies the CustomImageObjects linked to that asset Modified RoundUtils to provide a round() method which uses the DecimalFormat class instead of Math.round which is unstable CrushedPixel 2015-07-12 16:21:11 +02:00
  • 6a6873c3d7 Added ReflectionUtils helper class to find Fields with @Interpolate annotation in superclasses (Interpolators didn't account for Fields in AdvancedPosition inherited by Position) CrushedPixel 2015-07-12 03:31:52 +02:00
  • 824c80d0d2 GuiLabel now auto-breaks when text is longer than canvas johni0702 2015-07-11 15:17:36 +02:00
  • 117f383ec0 Add Layout to CrashReport when drawing GUI johni0702 2015-07-11 15:12:33 +02:00
  • d8a9b8fd2f Fix point conversion for stacked GuiContainers johni0702 2015-07-11 11:41:46 +02:00
  • a61c0eb4e5 Add GuiImage johni0702 2015-07-11 01:35:04 +02:00
  • 843328658a Add text color and setI18nText to GuiTextField johni0702 2015-07-10 22:49:21 +02:00
  • 28f7d77800 GuiObjectManager now allows users to set Keyframes for Transformations Fixed a bug in KeyframeList#getClosestKeyframeForTimestamp that made it only work with AdvancedPosition Keyframes CrushedPixel 2015-07-11 14:26:43 +02:00
  • 3fb0d87824 Fix constructor of AdvancedPosition not storing advanced data johni0702 2015-07-10 14:36:35 +02:00
  • 109a025a1e Only use java 6 methods johni0702 2015-07-10 14:35:46 +02:00
  • a218c13b44 GuiElement interface's mouseClick method returns a boolean which is handled by ComposedElement to prevent mouse clicks on multiple elements at once ComposedElement's entries are sorted so that GuiDropdown are always drawn on top Modified thrown UnsupportedOperationExceptions in CustomImageObject to not be thrown if asset is null CrushedPixel 2015-07-10 14:26:44 +02:00
  • 8aec0a364a Revert "Doesn't use a Java 1.8 Method to sort KeyframeList's contents" CrushedPixel 2015-07-10 14:14:54 +02:00
  • 1c417877e6 Doesn't use a Java 1.8 Method to sort KeyframeList's contents CrushedPixel 2015-07-10 14:14:29 +02:00
  • dea3f7fc9f Add GuiToggleButton johni0702 2015-07-10 12:59:07 +02:00
  • f2ee292119 Add GuiCheckbox johni0702 2015-07-10 11:46:33 +02:00
  • 2b2bbbf49a Add hint to GuiTextField johni0702 2015-07-10 12:00:05 +02:00
  • ef39c7466d Renamed the commonly used Position POJO into AdvancedPosition, as it also hold pitch, yaw and roll Made GuiDropdown only accept instances of GuiEntryListEntry to avoid unneccessary toString() methods returning the name Added GuiEntryListValueEntry which holds a Value and a Name to be displayed Continued work on GuiObjectManager CrushedPixel 2015-07-10 04:27:15 +02:00
  • 30ebfe96bd Allowed GuiTimeline instances to have any height (instead of fixed 22px height) and updated draw() method accordingly Added HSV noise to GuiTimeline's textures to somewhat hide the repeating body texture Implemented GuiTimeline in GuiObjectManager's GuiObjectKeyframeTimeline Added asInt() method to TimestampValue, to avoid int casts of value field CrushedPixel 2015-07-10 03:36:57 +02:00
  • 5828b04596 "The Commit that properly implements the disabling of Gui Elements" Added enabled Field to DelegatingElement, which every instance can handle itself Made isEnabled Field in GuiAdvancedTextField protected for subclasses to access Made GuiDraggingNumberInput only draggable while enabled Made GuiDropdown check enabled field before accepting mouse clicks Properly tints GuiTexturedButton if disabled CrushedPixel 2015-07-10 03:33:39 +02:00
  • 59e6b87935 Use new Gui API for GuiReplayDownloading johni0702 2015-07-09 18:30:31 +02:00
  • c66efc91b7 Add GuiProgressBar for new Gui API johni0702 2015-07-09 18:30:00 +02:00
  • 9e886b6171 Add tooltips to gui elements johni0702 2015-07-09 16:19:06 +02:00
  • d4e04feaeb Use new Gui API for GuiLoginPrompt and GuiRegister johni0702 2015-07-08 16:18:46 +02:00
  • db8b5a9be0 Add new Gui API johni0702 2015-07-08 12:54:25 +02:00
  • 4ebf6c5b21 GuiKeyframeRepository always loads the Presets from its current Data set (to respect removed/newly added presets) CrushedPixel 2015-07-09 16:41:13 +02:00
  • 609c731dc0 Got rid of the OpenEmbeddedChannel, an artifact of the ReplayMod's very beginning. Rest in Peace, old friend. CrushedPixel 2015-07-09 16:30:42 +02:00
  • 16b74d9824 Included Path Interpolation methods in KeyframeList and uses it in PathPreviewRenderer Created newInstance() method in KeyframeValue interface CrushedPixel 2015-07-08 23:55:48 +02:00
  • cd27ccd855 Undo replacements of "Timestamp" with "Value" in comments/javadoc in ReplaySender CrushedPixel 2015-07-08 23:00:06 +02:00
  • 2d19b17626 Finished Layout of GuiObjectManager CrushedPixel 2015-07-08 16:54:14 +02:00
  • 80a47a61c8 Made GuiDropdown a subclass of GuiAdvancedTextfield, updating the Constructor and removing the now redundant GuiConstants entries CrushedPixel 2015-07-08 15:50:12 +02:00
  • e26e09a264 Made GuiDraggingNumberInput fully functional Linked GuiObjectManager to new Keybinding Renamed RoundUtils#round to RoundUtils#round2Decimals for easier understanding CrushedPixel 2015-07-08 12:13:23 +02:00
  • 54f35eca03 Made GuiNumberInput a subclass of GuiAdvancedTextField and removed unneccessary IDs from Constructor and GuiConstants CrushedPixel 2015-07-08 11:54:47 +02:00
  • 8a973fa3e9 Created @Interpolate annotation for Interpolators to know which fields to interpolate (instead of all public fields) CrushedPixel 2015-07-08 11:43:58 +02:00
  • 64628eaac3 call super in equals/hashCode functions of KeyframesModifyEvent using Lombok CrushedPixel 2015-07-08 04:48:20 +02:00
  • 901b175efe Created GuiMarkerTimeline to display Markers again Created helper methods in ReplayHandler to provide information about MarkerKeyframes CrushedPixel 2015-07-08 04:46:44 +02:00
  • 5100b63964 Warning, GIGANTIC COMMIT! Replaced Keyframe subclasses with Generic Types of Keyframe and replaced all instanceof calls Replaced implementations of Linear and Spline interpolation to interpolate any Object that extends KeyframeValue and contains at least one public double Field. I'll need this for Keyframe interpolation in CustomImageObject Transformations Made MarkerKeyframe *no* subclass of Keyframe to avoid conflicts with PositionKeyframe in instanceof checks for Keyframe#getValue Created KeyframeList which extends ArrayList to provide some helping functions which DRY up the ReplayHandler Split up ReplayHandler's keyframeList into timeKeyframeList and positionKeyframeList CrushedPixel 2015-07-08 04:13:24 +02:00
  • 89cc6938f8 Reworked AssetRepository to link every Asset to a UUID UUIDs are now being stored in the Replay File and loaded CrushedPixel 2015-07-07 20:14:40 +02:00
  • 40acb3f72d Created Method in ReplayFileAppender to queue all registed files starting with a specific string (e.g. folder name) for deletion CrushedPixel 2015-07-07 20:12:19 +02:00
  • e22b37babe Created ReplayAsset interface and AssetRepository class which can contain such ReplayAssets. ReplayAssets allow users to add custom Files (so far only images, might be extended by .obj files) to the Replay which will later be used for CustomImageObjects. Created GuiReplayManager to allow users to manage their assets. Created BoundingUtils class to provide a simple method to fit an image into given bounds. This implementation fixes https://trello.com/c/WTnicWkJ/ CrushedPixel 2015-07-07 18:45:48 +02:00
  • 0b1d3d9001 Created AssetFileUtils to provide valid File Extensions for various ReplayAsset implementations. This class has to be updated if new ReplayAsset implementations are added. CrushedPixel 2015-07-07 18:42:10 +02:00
  • 5e70eece49 Fixed GuiAdvancedTextField being focusable while disabled. This behaviour was inherited from GuiTextField. CrushedPixel 2015-07-07 17:23:22 +02:00
  • cf2a8adb4c Removed backVisible field from CustomImageObject Updated new instance creations of GuiEntryListEntry whose constructor changed in last commit CrushedPixel 2015-07-07 17:04:01 +02:00
  • aa3a13b5a8 Updated GuiEntryList to extend GuiAdvancedTextField instead of GuiTextField CrushedPixel 2015-07-07 17:02:39 +02:00
  • 9a0c5366e1 Updated ExtendedPosition to include a scale value and added it to GuiAssetAdder (which will be renamed soon) CrushedPixel 2015-07-07 17:00:35 +02:00
  • 1b189c0dac Added setEnabled() method to GuiElement interface and implemented it everywhere Made GuiFileChooser a child of GuiAdvancedButton instead of GuiButton CrushedPixel 2015-07-07 16:55:37 +02:00
  • 392db29b34 Fix toggle buttons no longer working with GuiElement API johni0702 2015-07-07 16:38:05 +02:00
  • 37c1796dca Move features from GuiTexturedButton to GuiAdvancedButton johni0702 2015-07-07 16:30:53 +02:00
  • ddeb27be6f Call super methods in equals and hashCode in ExtendedPosition johni0702 2015-07-07 14:39:08 +02:00
  • 0c94bc9ce6 Set fov modifier during rendering to 1 when in camera view johni0702 2015-07-07 14:33:25 +02:00
  • 9f4b2d9026 Pause the recording when the integrated server is paused johni0702 2015-07-07 13:09:38 +02:00
  • 9867dce79c Fix NPE when there is no hint set johni0702 2015-07-07 12:20:00 +02:00
  • 2d96cd9cc2 Allow replays to be started by "replay://" URIs (e.g. from browser) johni0702 2015-07-06 19:59:20 +02:00
  • 948803571d GuiAssetAdder now allows to add/remove/edit Assets in a Replay. These Assets are not being saved yet. CrushedPixel 2015-07-06 16:39:30 +02:00
  • bf7b28d53c Fixed the "M" key being typed in a TextBox adding/removing marker keyframes CrushedPixel 2015-07-06 16:38:56 +02:00
  • a21cf64a88 Realign all nametags towards the camera when rendering 360° frames johni0702 2015-07-06 15:52:07 +02:00
  • 13534dc94e Update ReplayStudio: Fix text messages including json quotation marks johni0702 2015-07-06 13:39:48 +02:00
  • 6225d3956a Uses Lombok @NoArgsConstructor annotation instead of manually creating empty constructor in SearchQuery.java CrushedPixel 2015-07-06 13:54:47 +02:00
  • a5eadd2d01 Created GuiEntryListEntry interface for GuiEntryList contained classes to avoid toString() methods from having to be abused Created GuiFileChooser and according Listeners Added (non-functional) GuiAssetAdder for CustomImageObjects CrushedPixel 2015-07-06 13:44:50 +02:00
  • 013d5963ff Created CustomObjectRenderer to allow for BufferedImages to be rendered at a given Position. This supports Zoom and Rotation on all 3 axes. CrushedPixel 2015-07-06 00:28:57 +02:00
  • 49e391555c Fix PathPreviewRenderer's broken Tessellator calls (the result was broken, but because the texture is symmetrical nobody noticed) CrushedPixel 2015-07-06 00:27:57 +02:00
  • a444d49d70 Doesn't allow rendering if Optifine is installed and shows error screen CrushedPixel 2015-07-05 18:16:18 +02:00
  • 6e470fb812 Deselects Items in List after deleting Replay File using ReplayViewer CrushedPixel 2015-07-05 18:14:32 +02:00
  • 5f76577eed Properly multi-threaded File Reloading in GuiReplayViewer | https://trello.com/c/shUBbD2z/ CrushedPixel 2015-07-05 15:36:05 +02:00
  • d62e74a6f7 updateCurrentList() Method in GuiReplayCenter properly checks for Thread.interrupted() to avoid long freeze screens when switching Tab CrushedPixel 2015-07-05 01:51:38 +02:00
  • 5883dbc9be Added Search Tab to Replay Center | https://trello.com/c/13VNghWz/ CrushedPixel 2015-07-05 01:43:59 +02:00
  • c7bb053566 Only load Replay Files once in Replay Viewer to prevent the loader Thread from clashing with itself CrushedPixel 2015-07-04 22:24:09 +02:00
  • 434238c61d Unescapes HTML Character Entities in API calls | https://trello.com/c/Bm2Rk57m/ CrushedPixel 2015-07-04 21:50:57 +02:00
  • 57f094dddb Prevents duplicates from being added when resizing the Replay Viewer CrushedPixel 2015-07-04 21:41:56 +02:00
  • da4857ad8e Properly resize Replay List in Replay Center when resizing the video | https://trello.com/c/AcXGDXYY/ CrushedPixel 2015-07-04 21:41:25 +02:00
  • 770c1da071 Only limit character count in GuiTextArea if it's positive CrushedPixel 2015-07-04 21:40:44 +02:00
  • 3813673ef6 Added a way to limit a GuiTextArea's maximum character count and used it in GuiUploadFile's Description Text Area Set GuiUploadFile's Description Text Area's line and width limit to a high value for better results on the website | https://trello.com/c/YS9EyYPF/ CrushedPixel 2015-07-04 21:16:27 +02:00
  • 0743b3e1ac Added Progress Bar and Cancel Button when downloading a Replay File from Replay Center (GuiReplayDownloading) | https://trello.com/c/1ZPhwmp8/ CrushedPixel 2015-07-04 17:13:02 +02:00
  • 22be6d193a Fixed https://trello.com/c/wwJ2XyGN/ | Jumping in time also moves cursor on Keyframe Timeline CrushedPixel 2015-07-04 14:54:49 +02:00
  • 7115805d45 Added ProgressFilter to allow for more accurate progress bar in GuiReplayEditingProcess and implemented it | https://trello.com/c/qXWxoTc1/ CrushedPixel 2015-07-04 14:54:12 +02:00