Commit Graph
100 Commits
Author SHA1 Message Date
CrushedPixel 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
2015-07-13 01:21:48 +02:00
CrushedPixel f55f169d01 Removed MarkerKeyframe and replaced it with generic type of Keyframe using the new Marker POJO 2015-07-13 00:17:29 +02:00
CrushedPixel e9a73cb028 use List interface instead of ArrayList implementation in several places 2015-07-12 20:55:13 +02:00
CrushedPixel 06686d20a6 Added static reference to current VideoRenderer instance to allow CustomObjectRenderer to correctly interpolate Object Transformations while rendering 2015-07-12 18:59:19 +02:00
CrushedPixel 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
2015-07-12 16:21:11 +02:00
CrushedPixel 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
2015-07-10 04:27:15 +02:00
CrushedPixel 609c731dc0 Got rid of the OpenEmbeddedChannel, an artifact of the ReplayMod's very beginning. Rest in Peace, old friend. 2015-07-09 16:30:42 +02:00
CrushedPixel 16b74d9824 Included Path Interpolation methods in KeyframeList and uses it in PathPreviewRenderer
Created newInstance() method in KeyframeValue interface
2015-07-08 23:55:48 +02:00
CrushedPixel cd27ccd855 Undo replacements of "Timestamp" with "Value" in comments/javadoc in ReplaySender 2015-07-08 23:00:06 +02:00
CrushedPixel 901b175efe Created GuiMarkerTimeline to display Markers again
Created helper methods in ReplayHandler to provide information about MarkerKeyframes
2015-07-08 04:46:44 +02:00
CrushedPixel 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
2015-07-08 04:13:24 +02:00
CrushedPixel 89cc6938f8 Reworked AssetRepository to link every Asset to a UUID
UUIDs are now being stored in the Replay File and loaded
2015-07-07 20:14:40 +02:00
CrushedPixel 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/
2015-07-07 18:45:48 +02:00
CrushedPixel 948803571d GuiAssetAdder now allows to add/remove/edit Assets in a Replay. These Assets are not being saved yet. 2015-07-06 16:39:40 +02:00
CrushedPixel 013d5963ff Created CustomObjectRenderer to allow for BufferedImages to be rendered at a given Position. This supports Zoom and Rotation on all 3 axes. 2015-07-06 00:28:57 +02:00
CrushedPixel 9a30bd70d9 Only rewrites Marker Keyframes in Replay File if they actually changed | https://trello.com/c/tIRxc2lg/ 2015-07-03 13:04:39 +02:00
CrushedPixel 0bb335f692 Added Callback before clearing Keyframes | https://trello.com/c/ZzOk0ju1/ 2015-07-03 12:12:33 +02:00
CrushedPixel d5007692de Opens "Please wait" GUI Screen if Replay needs to be edited by ReplayFileAppender
Added ReplayExitEvent
2015-07-02 13:24:50 +02:00
CrushedPixel 5e8bfcbc63 If rendering crashes while initializing, an Error Screen telling the user to install ffmpeg is displayed | https://trello.com/c/EDDIqP0V/ 2015-06-30 01:33:46 +02:00
johni0702 a058497727 Fix all warnings
Add and make use of Lombok
Remove Mojang API
Remove ZipFileUtils
Remove StreamTools in favor of Apache IOUtils
Keyframe should be abstract all derivatives final
Replace clone in Keyframe with copy
Move some constants from GuiReplaySetttings to GuiConstants
2015-06-29 21:45:37 +02:00
CrushedPixel 645edbb20e Prevent ArrayIndexOutOfBoundsException when loading a newly created Camera Path by loading it from the dirty version | https://trello.com/c/WPikP6ig/ 2015-06-29 16:04:20 +02:00
CrushedPixel 66567c3834 Requires at least two Position one Time Keyframe for Camera Paths/Rendering | https://trello.com/c/qJZSno6o/ 2015-06-29 13:44:32 +02:00
johni0702 40818bd8b5 Open OOM gui screen instead of crash report on OOM 2015-06-29 09:52:46 +02:00
johni0702 b0f253538c Fix crash on exit of replay (no longer processing clicks mid-rendering) and OpenGL error warnings
Remove MCTimerHandler, instead always install the ReplayTimer
2015-06-16 19:33:48 +02:00
CrushedPixel 3df1bdcfc8 Added PathPreviewRenderer to draw a Preview of the current Camera Path into the World
Added KeyframesModifyEvent to be dispatched whenever the ReplayHandler's Keyframe List is changed
Refactored Event package
Reworked Settings GUI
2015-06-15 14:41:20 +02:00
CrushedPixel 05cc37adcc Marker names are now being displayed when hovering over them
Marker names are now editable in GuiEditKeyframe
2015-06-10 16:44:29 +02:00
CrushedPixel 0390533f9b Markers can now be removed using the M key (in the replay) 2015-06-09 23:20:47 +02:00
CrushedPixel d891436427 Markers are now being saved upon exiting the Replay 2015-06-09 23:16:45 +02:00
CrushedPixel 0a1680e891 Keyframe Presets now ignore Marker Keyframes and those are not overwritten when loading a preset 2015-06-09 23:05:18 +02:00
CrushedPixel b2ad52d5b6 Markers are now subclasses of Keyframe
Markers can now be moved and jumped to on the Replay Timeline
2015-06-09 22:55:20 +02:00
CrushedPixel d30ef19c89 Added Event Markers to Replay, which allow players to quickly mark important events while recording (M key by default)
Added Event Marker Indicators to be displayed on GuiTimeline
2015-06-09 16:08:06 +02:00
johni0702 146aa40bd4 Fix relative coordinates being taken as absolute 2015-06-04 17:59:46 +02:00
johni0702 eaf987b403 Only set view entity if it's not already set 2015-06-04 14:35:53 +02:00
CrushedPixel 01f80294aa Spectator Keyframes are now colored blue, and the timespan during which an Entity is spectated is tinted 2015-06-03 14:20:32 +02:00
johni0702 023188a46b Fix dead lock when jumping after end of replay has been reached 2015-06-02 22:49:17 +02:00
johni0702 a9f5c667f2 Fix dead player artifacts remaining in the world after sync jumping 2015-06-02 17:20:26 +02:00
johni0702 cc4d8f67c2 Play sounds during replay relative to camera 2015-06-01 23:46:45 +02:00
CrushedPixel fe036d72d8 Added Spectator Keyframes and handles them properly in both normal and rendered Replay Paths 2015-05-31 13:54:34 +02:00
johni0702 431a36c9d9 If resource pack is not located within replay file, fall back to minecraft handling 2015-05-31 12:53:11 +02:00
johni0702 184bfd7f2e Do not close replay if an exception is caught processing a packet 2015-05-31 11:55:12 +02:00
johni0702 37d31408bd Save resource packs to replay file and use those during replay 2015-05-29 12:16:28 +02:00
johni0702 61ab4d5717 Fix partial render ticks being reset during sync packet sending 2015-05-27 17:09:41 +02:00
johni0702 9f3a97f65c Cleanup, relocate and split up GuiReplayOverlay
Merge gui resources into one texture
2015-05-26 01:08:22 +02:00
CrushedPixel d84422d6c5 Spectating a Player now displays his Hand/Item 2015-05-25 22:54:55 +02:00
johni0702 538e95ad95 Set name of unnamed threads 2015-05-24 15:18:41 +02:00
johni0702 0ac9630a22 Close downloading-terrain-screen when swallowing the PlayerPosLook packet 2015-05-24 14:52:11 +02:00
CrushedPixel 9e12c0329d Replay is now definitely exited once a Player returns to the Main screen 2015-05-24 13:49:58 +02:00
CrushedPixel 2b3bc2787a Added GuiRenderSettings to customize rendering 2015-05-24 01:26:01 +02:00
johni0702 18f22f57d0 Rework rendering
Adds default, stereoscopic, tiling, cubic and equirectangular frame rendering
2015-05-23 14:58:34 +02:00
CrushedPixel 04d0461929 Implemented Left and Right Direction GuiArrowButton
Added quick way to switch between Keyframes of similar type in GuiEditKeyframe
2015-05-23 01:20:20 +02:00