Commit Graph

678 Commits

Author SHA1 Message Date
CrushedPixel
cbdaff9e41 Colors "Original" and "Modified" strings in GuiReplayInstanceChooser 2015-07-16 16:21:05 +02:00
CrushedPixel
de07811229 Created GuiReplayInstanceChooser which allows users to define whether they want to load their modified version of an online replay or load the original 2015-07-16 16:21:05 +02:00
johni0702
b4ed4fb31b Fix OffsetGuiRenderer swallowing the shadow flag 2015-07-16 16:05:56 +02:00
CrushedPixel
7def1d97ef Use Lombok for equals() and hashCode() methods in KeyframeSet 2015-07-16 15:04:04 +02:00
CrushedPixel
830087de36 ReplayHandler#spectateCamera() creates a new CameraEntity if the current instance is null 2015-07-16 14:59:37 +02:00
johni0702
752a972ed3 Throw ReportedException when catching an exception thrown during rendering 2015-07-16 14:48:21 +02:00
CrushedPixel
d25046d091 Fixed NPE in CustomObjectRenderer caused by mc.getRenderViewEntity() returning null 2015-07-16 14:45:26 +02:00
CrushedPixel
ef8dccf2cb The ReplayFileAppender now saves downloaded files which were modified in the Replay Folder 2015-07-16 14:45:03 +02:00
CrushedPixel
d2921eaf54 Created getNextFreeFile method in ReplayFileIO to provide the next free file with a filename like FILENAME_X.EXTENSION 2015-07-16 14:43:58 +02:00
CrushedPixel
d1ffa877b0 Load download Folder from ReplayFileIO in DownloadedFileHandler
DRY code in ReplayFileIO to retreive and create directories from config
2015-07-16 14:01:46 +02:00
CrushedPixel
ddc9ff9bcc Re-added Lossless MKV Render Preset 2015-07-16 13:50:22 +02:00
CrushedPixel
9576e7b35c Prevented NPE in TickAndRenderListener 2015-07-16 13:50:10 +02:00
CrushedPixel
5b78f82116 In GuiAssetManager, directly modify the ReplayHandler's Asset Repository instance, as ReplayImage#loadFromStream uses this instance to determine whether it has to notify Custom Image Objects about an image change 2015-07-16 13:37:15 +02:00
CrushedPixel
d45fcb8a34 Only register changes in ReplayFileAppender if something changed - this applies to GuiKeyframeRepository, GuiObjectManager, GuiPlayerOverview, GuiAssetManager
Added equals method to ReplayImageAsset which is based on the BufferedImage's hash code (which is calculated only once)
2015-07-16 13:37:15 +02:00
johni0702
e6fcf4f094 Add render option for hiding player name tags 2015-07-16 12:55:36 +02:00
CrushedPixel
7790aee3cb Replaced lossless encoding with high quality ( -qp 1 instead of -qp 0 ) because (quote ffmpeg.org): Most non-FFmpeg based players will not be able to decode lossless (but YouTube can), so if compatibility is an issue you should not use lossless. 2015-07-15 23:59:23 +02:00
CrushedPixel
57100735a4 Filed GuiFileChooser opening an "Open" dialog when a "Save" dialog should be opened 2015-07-15 23:57:58 +02:00
CrushedPixel
5816ff1f80 Fix GuiAdvancedButton drawing a Tooltip if the Hover Text String is empty 2015-07-15 23:57:30 +02:00
johni0702
affcb3df0a Fix constantly re-registering the camera entity event handlers 2015-07-15 18:49:07 +02:00
CrushedPixel
936f242b4c Added Encoding Presets to GuiRenderSettings and removed Checkbox for Custom Resolution 2015-07-15 16:50:58 +02:00
johni0702
8889f3c340 Add shadows to button and checkbox GUI 2015-07-15 15:54:28 +02:00
johni0702
7ee5f86b4e Prevent rendering with invalid resolution 2015-07-15 15:43:01 +02:00
CrushedPixel
13314e27da Set latestModVersion to true by default so the user doesn't get an update notification if their internet failed
If in a dev environment, ApiClient#isVersionUpToDate always returns true
2015-07-15 14:45:00 +02:00
johni0702
7fd429e25f Rework rendering pipeline to make better use of multithreading
Move OpenGL frame to ARGB conversion to processing threads
Move video exporting to processing threads
Skip creation of BufferedImage and instead use ByteBuffer with ARGB content directly
2015-07-15 14:23:43 +02:00
CrushedPixel
3a2c35cb22 Added Api Call checking if the Mod has the latest version and Message in Main Menu if not up-to-date
Removed unused GuiConstants Fields
2015-07-15 14:08:28 +02:00
CrushedPixel
1aa2c8e02b Made Keyframes in GuiObjectManager draggable 2015-07-15 12:24:38 +02:00
CrushedPixel
62073d6351 In the GuiObjectManager, Keyframes can be deleted using the DELETE Key on the Keyboard 2015-07-15 12:20:24 +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
3e77e72f5a Sleepy me forgot to disable Path Previews while in Path 2015-07-14 12:08:23 +02:00
CrushedPixel
af305b4063 Play Camera Path button graphically didn't turn into pause button while playing 2015-07-14 12:08:07 +02:00
CrushedPixel
9953bdf357 Added support for legacy Spectator Keyframes in LegacyKeyframeSetAdapter 2015-07-14 12:07:35 +02:00
CrushedPixel
25f7b8dd0c Access Vector3d's fields directly instead of using getter which for some reason fails the gradle build task 2015-07-14 04:31:32 +02:00
CrushedPixel
eb4f0fcc20 Added Preview for Camera's Position and look direction in Path Previews
Added getDestination() method to AdvancedPosition to calculate the destination based on a step size and the position's pitch/yaw
2015-07-14 04:25:19 +02:00
CrushedPixel
0ff40cc0f5 Fixed Custom Image Objects being rendered through blocks 2015-07-14 02:21:51 +02:00
CrushedPixel
534007b9c8 Executes JFileChooser activities in Swing Thread
If Minecraft is fullscreen, exit fullscreen when using GuiFileChooser
2015-07-14 02:07:24 +02:00
CrushedPixel
654c2200d5 Replaced AWT FileDialog with Swing JFileChooser in GuiFileChooser 2015-07-14 01:36:00 +02:00
CrushedPixel
0d7065d45d Disabled remove button in GuiAssetManager if no element is selected in List 2015-07-14 01:01:35 +02:00
CrushedPixel
9cf3f426aa Renamed setEnabled() method in GuiElementInterface to setElementEnabled() to workaround this Forge Bug: http://www.minecraftforge.net/forum/index.php/topic,32063 2015-07-14 00:25:17 +02:00
CrushedPixel
a58e06703c Using the DELETE Key, selected Keyframes can now be removed
Added StaticKeybindings to provide non-changeable KeyBindings
2015-07-13 22:27:14 +02:00
CrushedPixel
0f024a9de9 Cleaned up ReplayHandler by unifying selectedKeyframe and selectedMarkerKeyframe into selectedKeyframe, thus only being able to select one Keyframe at once 2015-07-13 22:08:41 +02:00
CrushedPixel
a7590ce384 Rendering: Deletes destination File if it already exists to prevent ffmpeg from crashing | https://trello.com/c/Ozlp5Sts/ 2015-07-13 21:07:29 +02:00
CrushedPixel
2297808e9d In MinecraftTicker, only handle Key Input if no GUI is open as the GUI will invoke the same dispatchKeypresses() method itself 2015-07-13 16:08:21 +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
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/ 2015-07-13 15:26:20 +02:00
CrushedPixel
3eca70fea4 Fixed blue stroke on GuiKeyframeTimeline possibly exceeding the Timeline's bounds | https://trello.com/c/IfTtmwso/ 2015-07-13 15:18:32 +02:00
CrushedPixel
ff5481822a Added support for Time Keyframes in GuiEditKeyframe | https://trello.com/c/h33v5cSQ/ 2015-07-13 15:11:13 +02:00
johni0702
dccbc99d86 Add option for whether to draw a shadow of string to GuiRenderer 2015-07-13 14:09:35 +02:00
CrushedPixel
be3afc9e0e Created LegacyKeyframeSetAdapter to properly deserialize old, non-generic PositionKeyframes and TimeKeyframes for Path Presets 2015-07-13 13:34:50 +02:00
johni0702
81c4659b93 Fix time freezes during rendering not working 2015-07-13 12:49:25 +02:00
johni0702
d29cc85dc8 Fix NPE when loading a replay without marker keyframes 2015-07-13 12:21:18 +02:00