d6c03644b8
Created GuiOutsideClickableElement interface for GuiElements that can be deselected/closed by clicking outside of them and properly forward mouse clicks to these elements
CrushedPixel
2015-07-19 14:42:12 +02:00
7a7766c20f
Fix bug where thePlayer is reset to the position of its bounding box causing the suffocation overlay to be displayed for a frame
johni0702
2015-07-19 13:39:33 +02:00
07fc3ceced
Rewrote GuiRenderSettings to use the semi-new Gui System and have three instead of two pages (Video Settings, Advanced Settings, Command Line Settings)
CrushedPixel
2015-07-19 13:27:27 +02:00
5087de8cd5
GuiColorPicker#hoveringPicker only returns true if the GuiElement is enabled
CrushedPixel
2015-07-19 13:07:55 +02:00
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
CrushedPixel
2015-07-19 12:44:21 +02:00
33bed3e6a5
Made GuiReplaySpeedSlider a subclass of GuiAdvancedButton
CrushedPixel
2015-07-19 12:41:37 +02:00
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
CrushedPixel
2015-07-19 11:23:38 +02:00
b4eb366688
Added more Constructors to GuiAdvancedTextField
CrushedPixel
2015-07-19 02:34:36 +02:00
b851632ffb
added getWidth() method to GuiString which returns the width of the drawn String (calculated using FontRenderer#getStringWidth())
CrushedPixel
2015-07-19 02:34:10 +02:00
3c7c1198cc
Made GuiColorPicker a subclass of GuiAdvancedButton and call pickerToggled() method from own click handler methods
CrushedPixel
2015-07-19 02:33:39 +02:00
5b167351b0
ComposedElement initially sorts its elements and respects their elements' y position if both are Dropdowns
CrushedPixel
2015-07-19 02:33:02 +02:00
3299986e18
Made GuiVideoFramerateSlider a subclass of GuiAdvancedButton and added missing @Override annotations
CrushedPixel
2015-07-19 02:32:33 +02:00
708201c456
Added CheckBoxListener for GuiAdvancedCheckBox
CrushedPixel
2015-07-19 02:32:03 +02:00
046b686837
Fix GuiDropdown not functioning in GuiReplayEditor
johni0702
2015-07-18 17:50:43 +02:00
d61e82ef3b
Add PBO frame capturer for stereoscopic, cubic and equirectangular rendering
johni0702
2015-07-18 16:36:54 +02:00
2a9cc745c0
Fix exceptions not being handled correctly when rendering from command line Fix export args and file not being set when rendering from command line
johni0702
2015-07-18 16:36:04 +02:00
33ff72b878
Wait until world has loaded when previewing a Camera Path Clean up unused fields and thus unnecessary methods in ReplayProcess
CrushedPixel
2015-07-17 14:35:58 +02:00
83b91b7d8e
CustomImageObject#getResourceLocation() should return null if it's not registered yet (thread safety)
CrushedPixel
2015-07-17 13:33:48 +02:00
edf2f9ce13
Undo removed ReplayHandler#spectateCamera() call which was inherited from ReplayHandler#setCameraEntity() call which was removed in commit ef39c74
CrushedPixel
2015-07-17 13:33:16 +02:00
a46a223070
Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer
CrushedPixel
2015-07-17 13:12:50 +02:00
fdd2c7ecf7
Allow all camera rotation axis to be ignored separately during rendering
johni0702
2015-07-17 12:43:02 +02:00
d360ee5e2e
Moved Add and Remove Buttons in GuiObjectManager 5px upwards
CrushedPixel
2015-07-17 12:27:55 +02:00
7094a18106
Close Toolbar in GuiReplayOverlay when GuiMouseInput is closed
CrushedPixel
2015-07-17 12:15:35 +02:00
71952e94dd
Fix getCameraEntity not being thread safe (concurrent event registration) even though called from multiple threads
johni0702
2015-07-17 11:48:32 +02:00
a55173ffc7
Marker Keyframes are initially selected after creating them and get properly deselected when removing them
CrushedPixel
2015-07-17 02:30:23 +02:00
0614b5e750
Prevent "Synchronize Timelines" feature from exceeding the Keyframe Timeline length
CrushedPixel
2015-07-17 02:25:51 +02:00
21938250f6
Keyframe Timeline Length is a Magic Constant
CrushedPixel
2015-07-17 02:25:29 +02:00
d708360c63
Render Camera Indicator in lower right corner if Path Preview is active
CrushedPixel
2015-07-17 02:12:40 +02:00
028b7ff7b7
Added consistency to naming of Keybindings
CrushedPixel
2015-07-17 01:26:41 +02:00
a7cf488d0b
Reorder custom Replay Mod Keybindings for better display in GuiReplayOverlay
CrushedPixel
2015-07-17 01:26:11 +02:00
0ae8e9583a
Add Toolbar to GuiReplayOverlay, showing all Keybindings as handy buttons
CrushedPixel
2015-07-17 01:25:50 +02:00
154f3e3c04
Do not show Clear Keyframe Callback if no Keyframes present
CrushedPixel
2015-07-17 01:25:13 +02:00
e0dec32b1d
Updated TimestampUtils#getMinutesFromTimestamp, allowing the returned value be higher than 60
CrushedPixel
2015-07-16 22:57:59 +02:00
238acf2eca
Initially validate inputs in GuiRenderSettings
CrushedPixel
2015-07-16 22:04:06 +02:00
9ba99d1794
Added restriction for Encoding Presets with the yuv420 setting (width and height have to be even numbers)
CrushedPixel
2015-07-16 21:56:29 +02:00
da82e3e1f2
Draw Elements in GuiRenderSettings in the correct order
CrushedPixel
2015-07-16 21:09:51 +02:00
af3ca17bcd
Fixed Encoding Presets to allow for whitespaces in the File Name
CrushedPixel
2015-07-16 21:03:05 +02:00
87b99d1f8f
Fixed min/max values for GuiNumberInputs in GuiEditKeyframe
CrushedPixel
2015-07-16 21:02:49 +02:00
bd1e8b4866
Fixed small mistake in localizaton
CrushedPixel
2015-07-16 21:02:31 +02:00
5dd974cc9f
Fix preview trying to read argb when there is only rgb
johni0702
2015-07-16 21:02:06 +02:00
e29b6ec9a0
Use java.util.Arrays instead of scala.actors.threadpool.Arrays in GuiKeyframeRepository to prevent a crash at runtime
CrushedPixel
2015-07-16 20:20:57 +02:00
0c7e7a3e0c
removed unnecessary null check when calling ReplayHandler#getCameraEntity in ReplaySender
CrushedPixel
2015-07-16 19:41:17 +02:00
84cb8b2988
Do not bother with exceptions during exporting when process was cancelled
johni0702
2015-07-16 19:08:24 +02:00
56efc8c5ec
Use RGB instead of ARGB for export and therefore speed up OpenGL to output conversion process
johni0702
2015-07-16 18:14:05 +02:00
a19317ecdd
CameraEntity now registers itself. It doesn't need external code doing its job!
CrushedPixel
2015-07-16 17:45:52 +02:00
86bd646b35
Another commit to fix underlining in GuiReplayInstanceChooser... I'm so sorry Johni :(
CrushedPixel
2015-07-16 17:37:20 +02:00
531319a4d1
Added Checkbox to GuiRenderSettings to enable/disable Name Tag rendering
CrushedPixel
2015-07-16 17:28:33 +02:00
5634507ce7
GuiReplayInstanceChooser: Undid underlining the Replay File String and underline the Gui Title again
CrushedPixel
2015-07-16 16:46:07 +02:00
6a5b6fdac5
Add PBOs and PBO support for default rendering
johni0702
2015-07-16 16:19:20 +02:00
787942aef2
Add high performance rendering mode which does not render the GUI every frame
johni0702
2015-07-16 16:18:26 +02:00
cbdaff9e41
Colors "Original" and "Modified" strings in GuiReplayInstanceChooser
CrushedPixel
2015-07-16 16:20:55 +02:00
de07811229
Created GuiReplayInstanceChooser which allows users to define whether they want to load their modified version of an online replay or load the original
CrushedPixel
2015-07-16 16:17:27 +02:00
b4ed4fb31b
Fix OffsetGuiRenderer swallowing the shadow flag
johni0702
2015-07-16 16:04:35 +02:00
7def1d97ef
Use Lombok for equals() and hashCode() methods in KeyframeSet
CrushedPixel
2015-07-16 15:04:04 +02:00
830087de36
ReplayHandler#spectateCamera() creates a new CameraEntity if the current instance is null
CrushedPixel
2015-07-16 14:59:30 +02:00
752a972ed3
Throw ReportedException when catching an exception thrown during rendering
johni0702
2015-07-16 14:46:41 +02:00
d25046d091
Fixed NPE in CustomObjectRenderer caused by mc.getRenderViewEntity() returning null
CrushedPixel
2015-07-16 14:45:26 +02:00
ef8dccf2cb
The ReplayFileAppender now saves downloaded files which were modified in the Replay Folder
CrushedPixel
2015-07-16 14:45:03 +02:00
d2921eaf54
Created getNextFreeFile method in ReplayFileIO to provide the next free file with a filename like FILENAME_X.EXTENSION
CrushedPixel
2015-07-16 14:43:58 +02:00
d1ffa877b0
Load download Folder from ReplayFileIO in DownloadedFileHandler DRY code in ReplayFileIO to retreive and create directories from config
CrushedPixel
2015-07-16 14:01:46 +02:00
9576e7b35c
Prevented NPE in TickAndRenderListener
CrushedPixel
2015-07-16 13:50:10 +02:00
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
CrushedPixel
2015-07-16 13:37:04 +02:00
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)
CrushedPixel
2015-07-16 13:26:12 +02:00
e6fcf4f094
Add render option for hiding player name tags
johni0702
2015-07-16 12:54:00 +02:00
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.
CrushedPixel
2015-07-15 23:59:23 +02:00
57100735a4
Filed GuiFileChooser opening an "Open" dialog when a "Save" dialog should be opened
CrushedPixel
2015-07-15 23:57:58 +02:00
5816ff1f80
Fix GuiAdvancedButton drawing a Tooltip if the Hover Text String is empty
CrushedPixel
2015-07-15 23:57:30 +02:00
affcb3df0a
Fix constantly re-registering the camera entity event handlers
johni0702
2015-07-15 18:44:05 +02:00
936f242b4c
Added Encoding Presets to GuiRenderSettings and removed Checkbox for Custom Resolution
CrushedPixel
2015-07-15 16:50:51 +02:00
8889f3c340
Add shadows to button and checkbox GUI
johni0702
2015-07-15 15:54:28 +02:00
7ee5f86b4e
Prevent rendering with invalid resolution
johni0702
2015-07-15 15:42:43 +02:00
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
CrushedPixel
2015-07-15 14:44:53 +02:00
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
johni0702
2015-07-15 14:21:18 +02:00
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
CrushedPixel
2015-07-15 14:08:28 +02:00
1aa2c8e02b
Made Keyframes in GuiObjectManager draggable
CrushedPixel
2015-07-15 12:24:38 +02:00
62073d6351
In the GuiObjectManager, Keyframes can be deleted using the DELETE Key on the Keyboard
CrushedPixel
2015-07-15 12:20:24 +02:00
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
CrushedPixel
2015-07-14 13:48:48 +02:00
3e77e72f5a
Sleepy me forgot to disable Path Previews while in Path
CrushedPixel
2015-07-14 12:08:23 +02:00
af305b4063
Play Camera Path button graphically didn't turn into pause button while playing
CrushedPixel
2015-07-14 12:08:07 +02:00
9953bdf357
Added support for legacy Spectator Keyframes in LegacyKeyframeSetAdapter
CrushedPixel
2015-07-14 12:07:35 +02:00
25f7b8dd0c
Access Vector3d's fields directly instead of using getter which for some reason fails the gradle build task
CrushedPixel
2015-07-14 04:31:32 +02:00
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
CrushedPixel
2015-07-14 04:25:19 +02:00
0ff40cc0f5
Fixed Custom Image Objects being rendered through blocks
CrushedPixel
2015-07-14 02:21:51 +02:00
534007b9c8
Executes JFileChooser activities in Swing Thread If Minecraft is fullscreen, exit fullscreen when using GuiFileChooser
CrushedPixel
2015-07-14 02:07:24 +02:00
654c2200d5
Replaced AWT FileDialog with Swing JFileChooser in GuiFileChooser
CrushedPixel
2015-07-14 01:36:00 +02:00
0d7065d45d
Disabled remove button in GuiAssetManager if no element is selected in List
CrushedPixel
2015-07-14 01:01:35 +02:00
a58e06703c
Using the DELETE Key, selected Keyframes can now be removed Added StaticKeybindings to provide non-changeable KeyBindings
CrushedPixel
2015-07-13 22:27:14 +02:00
0f024a9de9
Cleaned up ReplayHandler by unifying selectedKeyframe and selectedMarkerKeyframe into selectedKeyframe, thus only being able to select one Keyframe at once
CrushedPixel
2015-07-13 22:08:41 +02:00
a7590ce384
Rendering: Deletes destination File if it already exists to prevent ffmpeg from crashing | https://trello.com/c/Ozlp5Sts/
CrushedPixel
2015-07-13 21:07:29 +02:00
2297808e9d
In MinecraftTicker, only handle Key Input if no GUI is open as the GUI will invoke the same dispatchKeypresses() method itself
CrushedPixel
2015-07-13 16:08:21 +02:00
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
CrushedPixel
2015-07-13 15:47:57 +02:00