Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
CrushedPixel 5b167351b0 ComposedElement initially sorts its elements and respects their elements' y position if both are Dropdowns 2015-07-19 13:27:36 +02:00
CrushedPixel 3299986e18 Made GuiVideoFramerateSlider a subclass of GuiAdvancedButton and added missing @Override annotations 2015-07-19 13:27:36 +02:00
CrushedPixel 708201c456 Added CheckBoxListener for GuiAdvancedCheckBox 2015-07-19 13:27:36 +02:00
CrushedPixel 8f82ca5434 Implemented NoOverlay interface for some more GUIs 2015-07-17 16:21:23 +02:00
CrushedPixel 2f78dc5e27 Don't render indicators in GuiReplayOverlay if current screen implements NoOverlay 2015-07-17 16:21:02 +02:00
CrushedPixel d5be3b8eb6 Fix typo in Renderer Descriptions (useable -> usable) 2015-07-17 16:20:38 +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
CrushedPixel 83b91b7d8e CustomImageObject#getResourceLocation() should return null if it's not registered yet (thread safety) 2015-07-17 13:33:54 +02:00
CrushedPixel edf2f9ce13 Undo removed ReplayHandler#spectateCamera() call which was inherited from ReplayHandler#setCameraEntity() call which was removed in commit ef39c74 2015-07-17 13:33:54 +02:00
CrushedPixel a46a223070 Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer 2015-07-17 13:33:54 +02:00
CrushedPixel d360ee5e2e Moved Add and Remove Buttons in GuiObjectManager 5px upwards 2015-07-17 12:27:55 +02:00
CrushedPixel 7094a18106 Close Toolbar in GuiReplayOverlay when GuiMouseInput is closed 2015-07-17 12:16:10 +02:00
CrushedPixel efd82861c2 Rename mislabeled TimestampUtils#getMinutesFromTimestamp Method to TimestampUtils#timestampToWholeMinutes 2015-07-17 12:16:09 +02:00
CrushedPixel a55173ffc7 Marker Keyframes are initially selected after creating them and get properly deselected when removing them 2015-07-17 02:30:23 +02:00
CrushedPixel 0614b5e750 Prevent "Synchronize Timelines" feature from exceeding the Keyframe Timeline length 2015-07-17 02:25:51 +02:00
CrushedPixel 21938250f6 Keyframe Timeline Length is a Magic Constant 2015-07-17 02:25:29 +02:00
CrushedPixel d708360c63 Render Camera Indicator in lower right corner if Path Preview is active 2015-07-17 02:12:40 +02:00
CrushedPixel 028b7ff7b7 Added consistency to naming of Keybindings 2015-07-17 01:26:41 +02:00
CrushedPixel a7cf488d0b Reorder custom Replay Mod Keybindings for better display in GuiReplayOverlay 2015-07-17 01:26:11 +02:00
CrushedPixel 0ae8e9583a Add Toolbar to GuiReplayOverlay, showing all Keybindings as handy buttons 2015-07-17 01:25:50 +02:00
CrushedPixel 154f3e3c04 Do not show Clear Keyframe Callback if no Keyframes present 2015-07-17 01:25:13 +02:00
CrushedPixel e0dec32b1d Updated TimestampUtils#getMinutesFromTimestamp, allowing the returned value be higher than 60 2015-07-16 22:57:59 +02:00
CrushedPixel 238acf2eca Initially validate inputs in GuiRenderSettings 2015-07-16 22:04:06 +02:00
CrushedPixel 9ba99d1794 Added restriction for Encoding Presets with the yuv420 setting (width and height have to be even numbers) 2015-07-16 21:56:29 +02:00
CrushedPixel da82e3e1f2 Draw Elements in GuiRenderSettings in the correct order 2015-07-16 21:09:58 +02:00
CrushedPixel af3ca17bcd Fixed Encoding Presets to allow for whitespaces in the File Name 2015-07-16 21:09:58 +02:00
CrushedPixel 87b99d1f8f Fixed min/max values for GuiNumberInputs in GuiEditKeyframe 2015-07-16 21:09:58 +02:00
CrushedPixel bd1e8b4866 Fixed small mistake in localizaton 2015-07-16 21:09:58 +02:00
CrushedPixel e29b6ec9a0 Use java.util.Arrays instead of scala.actors.threadpool.Arrays in GuiKeyframeRepository to prevent a crash at runtime 2015-07-16 20:20:57 +02:00
CrushedPixel 0c7e7a3e0c removed unnecessary null check when calling ReplayHandler#getCameraEntity in ReplaySender 2015-07-16 19:41:24 +02:00
CrushedPixel a19317ecdd CameraEntity now registers itself. It doesn't need external code doing its job! 2015-07-16 17:45:52 +02:00
CrushedPixel 86bd646b35 Another commit to fix underlining in GuiReplayInstanceChooser... I'm so sorry Johni :( 2015-07-16 17:37:20 +02:00
CrushedPixel 531319a4d1 Added Checkbox to GuiRenderSettings to enable/disable Name Tag rendering 2015-07-16 17:28:33 +02:00
CrushedPixel 5634507ce7 GuiReplayInstanceChooser: Undid underlining the Replay File String and underline the Gui Title again 2015-07-16 16:46:07 +02:00
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
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
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
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
CrushedPixel 936f242b4c Added Encoding Presets to GuiRenderSettings and removed Checkbox for Custom Resolution 2015-07-15 16:50:58 +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
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
CrushedPixel be3afc9e0e Created LegacyKeyframeSetAdapter to properly deserialize old, non-generic PositionKeyframes and TimeKeyframes for Path Presets 2015-07-13 13:34:50 +02:00
CrushedPixel 39558701bf Reworked GuiEditKeyframe to use ComposedElements
Made GuiArrowButton a subclass of GuiAdvancedButton
Added consistency to ReplayHandler by renaming getMarkers() to getMarkerKeyframes() and removing redundant methods which can be accessed via KeyframeList class
2015-07-13 02:03:19 +02:00
CrushedPixel 66c595eb04 Marker Keyframes are now being saved in a KeyframeList in the ReplayHandler
Made MarkerKeyframes names editable in GuiEditKeyframe
Shows "Unnamed Marker" if Marker name is empty
2015-07-13 01:21:48 +02:00
CrushedPixel f55f169d01 Removed MarkerKeyframe and replaced it with generic type of Keyframe using the new Marker POJO 2015-07-13 00:17:29 +02:00
CrushedPixel bb05e3648d Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer and properly displays CustomImageObjects behind Path Preview Markers | https://trello.com/c/FaiMoTDK/ 2015-07-12 23:33:11 +02:00
CrushedPixel b4e72af48f Prevented NPEs if Asset linked to CustomImageObject is null 2015-07-12 23:32:04 +02:00
CrushedPixel b0429fcf44 Fixed NPE in GuiFileChooser if selected file is null 2015-07-12 22:23:33 +02:00
CrushedPixel ac3474f2bc The output file can now be specified in GuiRenderSettings 2015-07-12 22:13:18 +02:00
CrushedPixel ac79eef077 Added support for Save File Dialogs to GuiFileChooser 2015-07-12 22:12:51 +02:00
CrushedPixel 34e3e3c407 Sets a new CustomImageObject's default position to the player's position 2015-07-12 21:08:06 +02:00
CrushedPixel 75e1c17f1f Added constructor to Position which takes a BlockPos 2015-07-12 21:06:54 +02:00