Commit Graph

43 Commits

Author SHA1 Message Date
CrushedPixel
5427616ceb Reworked ReplayProcess to get rid of own Interpolation instances (as these can be handled by the KeyframeLists)
Camera Paths are now started from the current cursor position, using Ctrl-click the path always starts from the beginning
2015-07-25 14:11:06 +02:00
CrushedPixel
371d26aaff Revert "The reason why the Mouse was not visible on my Mac after rendering was that the cursor was at some very odd position far far away from the actual MC window (in fullscreen)."
This reverts commit d46be20d72.
2015-07-23 13:14:47 +02:00
CrushedPixel
d46be20d72 The reason why the Mouse was not visible on my Mac after rendering was that the cursor was at some very odd position far far away from the actual MC window (in fullscreen).
To workaround this, set the Cursor Position to 0, 0 after playing a Camera Path. | https://trello.com/c/IHxYiBTE/
2015-07-23 01:12:15 +02:00
CrushedPixel
f5a9723646 Added getLinearInterpolator() and getCubicInterpolator() methods to KeyframeValue interface to allow for specific Interpolators instead of the Generic Interpolators
Created InterpolationUtils class with a method to fix the Euler Rotation Break problem
Create AdvancedPositionSplineInterpolation and AdvancedPositionLinearInterpolation which always use the shortest possible paths between the Euler Rotation values of the Camera's Yaw and Roll
Remove Position Keyframe filtering when adding the Keyframe. This is now done by the AdvancedPositionInterpolation classes
2015-07-21 03:49:20 +02:00
johni0702
6422558028 General warning cleanup 2015-07-19 16:21:56 +02:00
CrushedPixel
33ff72b878 Wait until world has loaded when previewing a Camera Path
Clean up unused fields and thus unnecessary methods in ReplayProcess
2015-07-17 14:35:58 +02:00
johni0702
752a972ed3 Throw ReportedException when catching an exception thrown during rendering 2015-07-16 14:48:21 +02:00
CrushedPixel
d057553223 Added "inclusive" parameter to getPreviousKeyframe() and getNextKeyframe() in KeyframeList to define whether the next/previous keyframe may have the same timestamp as the realTime parameter
Fixed a bug in KeyframeList#getPositionOnPath where a non-inclusive getPreviousKeyframe call resulted in an incorrect position value
2015-07-14 13:48:48 +02:00
CrushedPixel
3f12019288 Created CameraPathValidator to validate Camera Paths before playing them and uses its static validateCameraPath() method whenever a Camera Path is to be started
Camera Paths can't start if negative movement through time would be required
2015-07-13 15:47:57 +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
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
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
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
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
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
fe036d72d8 Added Spectator Keyframes and handles them properly in both normal and rendered Replay Paths 2015-05-31 13:54:34 +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
cbbc50a37a Renamed "Camera Tilt" to "Camera Roll" (new naming convention!)
Changed Camera Roll to use Degree Values
Started adding Timeline Position Editing to GuiEditKeyframe
2015-05-22 17:06:36 +02:00
johni0702
136761b424 Clean up and restructure the replay sender
Add a ReplayFile class for easy reading of replay files
2015-05-11 14:15:00 +02:00
CrushedPixel
8e3ded4f5e Included Camera Tilt to Camera Paths 2015-05-06 12:32:16 +02:00
CrushedPixel
4da2b1e41c Fixed time not standing still when it should during a Camera Path 2015-04-30 18:04:53 +02:00
CrushedPixel
ae5eca9c99 Localized Keyboard Bindings and added "Synchronize Timeline" and "Clear Keyframes" 2015-04-30 17:46:13 +02:00
CrushedPixel
79be2bd0d5 Started localizing the Chat Messages and GUI 2015-04-26 01:47:27 +02:00
CrushedPixel
0003f040ed Refactored and reformatted code to use less static variables 2015-04-23 14:09:54 +02:00
Marius Metzger
96fa350bc6 Made chunk loading block independent from computer's performance
Fixed UI glitch in Survival caused by incorrect usage of the GL Manager
2015-04-11 10:58:00 +02:00
Marius Metzger
66e27a97a4 .tmcpr files are now being deleted upon starting the game
Finally fixed Replay code
Finally fixed Lighting code
2015-04-06 16:00:08 +02:00
Marius Metzger
e4d282bffe Added Option to force load all chunks when rendering
Rewrote a lot of the Settings code
Started destroying the ReplayProcess, gonna fix that ASAP
2015-04-06 11:00:32 +02:00
Marius Metzger
e7c2a462f3 Significantly improved the performance of video rendering by using the magic of multithreading 2015-04-05 02:10:44 +02:00
Marius Metzger
82160b68d4 Made Replay Settings actually persist over the course of two Minecraft sessions.
Started breaking video rendering. Time to put it back together.
2015-04-05 00:41:49 +02:00
Marius Metzger
5b859340fd Fixed two similar time keyframes not setting the Replay Speed to 0 sometimes 2015-03-31 17:50:39 +02:00
Marius Metzger
becbf47088 Reworked Camera Movement in Replay Viewer
Finally made Replay Trimming work
Fixed and dried ReplayProcess pathTick() method
2015-03-31 01:10:01 +02:00
Marius Metzger
11e26e0129 Updated build.gradle to automatically build fat jars with the dependencies in the /libs folder. This utilizes the shade.sh shell script. Use ./gradlew without explicitely invoking the build task, as this will automatically build a fat jar.
Sorry for this painful commit, but git somehow f'd up and sees changes in files where there aren't any.
2015-03-21 17:05:53 +01:00
Marius Metzger
14f53f7429 Added Core Mod to redirect the Enchantment Rendering getSystemTime() calls to a the EnchantmentTimer (glow now slows down) 2015-03-16 01:45:36 +01:00
Marius Metzger
a38f87e377 Finished Trim Part for Replay Studio
Fixed Scroll Bar for GuiSpectateSelection
2015-03-12 12:56:37 +01:00
Marius Metzger
b4ce266375 Disabled Head rotation while saving replay video
Made video rendering possible while Minecraft is in background
2015-03-08 22:51:50 +01:00
Marius Metzger
03f6ba1ade Added Video Export feature with according Options in the Options Menu
Fixed Linear Interpolation
2015-02-08 12:40:37 +01:00
Marius Metzger
9ae8f9fc5e Started implementing authentication system
Added information (MC Version and online Users) to Replay Metadata
2015-01-22 22:21:25 +01:00
Marius Metzger
69a196fe74 Added and fixed basic saving of recording player 2015-01-16 21:39:30 +01:00
Marius Metzger
1afdd6df2b Implemented/fixed Time Keyframes
Some optimization to follow!
2015-01-13 15:01:03 +01:00
Marius Metzger
25c4f85a4c Cleaned up Packet checking in ReplaySender
Removed broken Time Keyframe functionality to create a stable build
2015-01-09 21:33:33 +01:00
Marius Metzger
cbd96d57f4 First Commit 2015-01-03 23:25:21 +01:00