Commit Graph

574 Commits

Author SHA1 Message Date
CrushedPixel
7b67fb4242 Instead of ticking the world once (which updated entities and such), simply set the EntityRenderer's lightmapUpdateNeeded to true when updating Ambient Lighting
Properly handle manual Gamma changes in LightingHandler not to confuse users why their Brightness setting is being reset constantly
2015-07-24 14:35:28 +02:00
CrushedPixel
bdd9d1da33 Replacing FileSystems call with File.getCanonicalFile in ReplayFileIO (which I should've used from the beginning) 2015-07-24 14:01:16 +02:00
CrushedPixel
4f94e41b9a Do not use Java 1.7 only File#toPath() method in ReplayFileIO#makeFolderFromPath 2015-07-24 13:26:30 +02:00
CrushedPixel
aae4af2062 Rework GuiVideoRenderer's Estimated Time Left to ignore the first frame (which took a long time to initialize) and be able to cope with multiple frames changing since the last update (Fast Rendering Mode) | https://trello.com/c/szQQycno/ 2015-07-24 13:09:32 +02:00
CrushedPixel
853c8a45e0 ComposedElements properly draw overlays of their underlying Elements 2015-07-23 22:41:48 +02:00
CrushedPixel
a51ab0cd44 To prevent particle rotations from being interpolated by MC, set prevRotationPitch and prevRotationYaw as well 2015-07-23 19:41:49 +02:00
CrushedPixel
ff65ced4a8 Since ReplayHandler#addKeyframe selects the Keyframe, deselect it after loading a Path Preset 2015-07-23 13:21:26 +02:00
CrushedPixel
be8286ad9c Center and free the Mouse cursor whenever a GuiReplayOverlay is opened 2015-07-23 13:20:39 +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
13481416b7 Fixed a major bug in the Time Keyframe interpolation when rendering a video that caused the Replay to be restarted while rendering. This occurred whenever videoTime exactly matched a Time Keyframe's Position and was fixed by passing true to KeyframeList#getPreviousKeyframe and KeyframeList#getNextKeyframe, which therefore return the Keyframe itself if the timestamp matches. 2015-07-23 13:13:36 +02:00
CrushedPixel
6547595318 ReplayFileIO#makeFolderFromPath removes dots (.) from file path to not confuse Windows File Systems. before: /eclipse/./replay_videos/, after: /eclipse/replay_videos/ 2015-07-23 13:11:01 +02:00
CrushedPixel
eb57e7be2c Since we can't determine the file extension without parsing the actual ffmpeg arguments, we don't manually delete the destination video file when rendering but instead tell FFmpeg to overwrite this file if it already exists using the -y parameter. 2015-07-23 13:09:56 +02:00
CrushedPixel
e80d71db93 Clearing Keyframes resets the Timeline Cursor Position 2015-07-23 12:34:44 +02:00
CrushedPixel
528ee52754 Added proper toString Method to TimestampValue for easier debugging 2015-07-23 12:34:30 +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
6e9a77098a When clicking Time/Marker Keyframes, the time is now traveled with the "Please wait" screen 2015-07-22 23:13:21 +02:00
CrushedPixel
9d025cfae0 Synchronizing the Replay Timeline now respects the Speed Slider's value as a stretch factor. Shift key ignores that stretch value. 2015-07-21 23:58:56 +02:00
CrushedPixel
0a71266a05 Properly filters S2BPacketChangeGameState to include weather effects like rain or sky color change | https://trello.com/c/hE8Uck3m/
Do not show Titles and Chat in Replay | https://trello.com/c/SUPgAjf1/
2015-07-21 18:10:46 +02:00
CrushedPixel
5bc26503a8 Remove unused Quaternion Interpolators. RIP, I definitely hat fun Slerping with you! 2015-07-21 11:49:26 +02:00
CrushedPixel
21b02e7e80 Added implementations for Quaternions to represent rotation values and Interpolators using the Slerp/Lerp algorithm
We might remove this later as it isn't used and requires the Apache Commons Math Library
2015-07-21 03:50:36 +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
CrushedPixel
ff6b09dcba Adjust MARKER_DISTANCE value in GuiTimeline to avoid visual glitches 2015-07-21 03:44:33 +02:00
CrushedPixel
91399301f7 GuiReplayOverlay: The Keyframe Timeline should be zoomed in more initially
Do not reset Timeline whenever resetUI is called, only if "deep" reset
2015-07-21 03:44:11 +02:00
CrushedPixel
d3b07e6679 Do not restrict Camera Yaw Values in GuiEditKeyframe 2015-07-21 03:41:02 +02:00
CrushedPixel
931a58a6a9 Learn english, Johni! 2015-07-21 03:40:38 +02:00
CrushedPixel
be77bb5a7b Added recalculate() method to KeyframeList to recalc the underlying Interpolation
Recalculate Keyframe Lists in ReplayHandler upon firing a KeyframesModifyEvent
2015-07-20 02:32:20 +02:00
CrushedPixel
30f0a4d6a9 Implemented expected behaviour in KeyframeList#getPreviousKeyframe and KeyframeList#getNextKeyframe 2015-07-20 02:03:53 +02:00
CrushedPixel
6201a7d13c Created drawRotatedRectWithCustomSizedTexture method in OpenGLUtils 2015-07-20 02:03:23 +02:00
CrushedPixel
585482a542 GuiArrowButton now draws from Texture instead of awful calculations 2015-07-20 02:03:01 +02:00
CrushedPixel
a435d5a271 Make GuiAdvancedButton only perform actions when enabled 2015-07-20 02:01:00 +02:00
CrushedPixel
e9c87b5c8c Set selected Keyframe to null upon joining a Replay 2015-07-20 01:18:06 +02:00
CrushedPixel
a9d7e0f794 Properly set previousCallLinear value in KeyframeList#getInterpolatedValueForPathPosition(), MASSIVELY increasing performance as the interpolation isn't recalculated all the time 2015-07-20 01:17:52 +02:00
CrushedPixel
d9e2c2a7c8 Only get Fields to Interpolate in Interpolation implementations if not done before -> massive performance increase 2015-07-20 01:16:53 +02:00
CrushedPixel
9b76bcadcb Fixed NPE in GuiEditKeyframe caused by super.onInit() call being too late... Johni0702, did you even test that Gui? | https://trello.com/c/PmcdLgzV/ 2015-07-20 01:16:09 +02:00
CrushedPixel
4dccf5b3b6 Only render Path Preview within Render Distance 2015-07-20 01:14:53 +02:00
CrushedPixel
702e02db65 Made calculation of Markers on GuiTimeline dynamic
Changed Real Timeline's Length to 30 minutes (request by multiple users)
2015-07-19 23:27:22 +02:00
johni0702
6422558028 General warning cleanup 2015-07-19 16:21:56 +02:00
johni0702
4f718ab302 Split GuiEditKeyframe into multiple classes depending on Keyframe type 2015-07-19 16:18:46 +02:00
CrushedPixel
c309929276 Fixed GuiReplaySpeedSlider and GuiVideoFramerateSlider overriding the wrong methods 2015-07-19 15:29:57 +02:00
CrushedPixel
d6c03644b8 Created GuiOutsideClickableElement interface for GuiElements that can be deselected/closed by clicking outside of them and properly forward mouse clicks to these elements 2015-07-19 14:42:12 +02:00
johni0702
7a7766c20f Fix bug where thePlayer is reset to the position of its bounding box causing the suffocation overlay to be displayed for a frame 2015-07-19 13:39:41 +02:00
CrushedPixel
07fc3ceced Rewrote GuiRenderSettings to use the semi-new Gui System and have three instead of two pages (Video Settings, Advanced Settings, Command Line Settings) 2015-07-19 13:27:37 +02:00
CrushedPixel
0dc4ddca08 Reduced Constructor sets GuiAdvancedTextField's height 2015-07-19 13:27:37 +02:00
CrushedPixel
5087de8cd5 GuiColorPicker#hoveringPicker only returns true if the GuiElement is enabled 2015-07-19 13:27:37 +02:00
CrushedPixel
51814e143b Created dummy GuiOverlayElement interface for ComposedElement to determine which Elements to draw last
Added methods to retrieve position and size from a GuiElement
Added draw() method with option to override hovered boolean to GuiElement interface and implemented it. This is required for GuiAdvancedButtons which would be tinted blue (as if hovered) even though an overlying GuiElement (e.g. GuiDropdown) was hovered
2015-07-19 13:27:37 +02:00
CrushedPixel
33bed3e6a5 Made GuiReplaySpeedSlider a subclass of GuiAdvancedButton 2015-07-19 13:27:37 +02:00
CrushedPixel
23b77b2375 Right-Clicking a Position Keyframe teleports the Camera to that Keyframe's Position, Right-Clicking a Time Keyframe jumps to its Timestamp | https://trello.com/c/dL48nHyG/
DRYed closest Keyframe calculation on GuiKeyframeTimeline
DRYed closest Keyframe calculation on GuiMarkerTimeline
2015-07-19 13:27:37 +02:00
CrushedPixel
b4eb366688 Added more Constructors to GuiAdvancedTextField 2015-07-19 13:27:37 +02:00
CrushedPixel
b851632ffb added getWidth() method to GuiString which returns the width of the drawn String (calculated using FontRenderer#getStringWidth()) 2015-07-19 13:27:37 +02:00
CrushedPixel
3c7c1198cc Made GuiColorPicker a subclass of GuiAdvancedButton and call pickerToggled() method from own click handler methods 2015-07-19 13:27:36 +02:00