Commit Graph

  • 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
  • 0dc4ddca08 Reduced Constructor sets GuiAdvancedTextField's height CrushedPixel 2015-07-19 13:26:26 +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
  • c3bc06cab0 Add additional checks in PBO methods johni0702 2015-07-18 16:33:30 +02:00
  • d7b8339f22 Fix infinite loop in exception handling johni0702 2015-07-17 15:03:28 +02:00
  • 8f82ca5434 Implemented NoOverlay interface for some more GUIs CrushedPixel 2015-07-17 16:21:23 +02:00
  • 2f78dc5e27 Don't render indicators in GuiReplayOverlay if current screen implements NoOverlay CrushedPixel 2015-07-17 16:21:02 +02:00
  • d5be3b8eb6 Fix typo in Renderer Descriptions (useable -> usable) CrushedPixel 2015-07-17 16:20:38 +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
  • efd82861c2 Rename mislabeled TimestampUtils#getMinutesFromTimestamp Method to TimestampUtils#timestampToWholeMinutes CrushedPixel 2015-07-17 12:15:10 +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
  • ddc9ff9bcc Re-added Lossless MKV Render Preset CrushedPixel 2015-07-16 13:50:22 +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
  • 9cf3f426aa Renamed setEnabled() method in GuiElementInterface to setElementEnabled() to workaround this Forge Bug: http://www.minecraftforge.net/forum/index.php/topic,32063 CrushedPixel 2015-07-14 00:25:17 +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