CrushedPixel
ef39c7466d
Renamed the commonly used Position POJO into AdvancedPosition, as it also hold pitch, yaw and roll
...
Made GuiDropdown only accept instances of GuiEntryListEntry to avoid unneccessary toString() methods returning the name
Added GuiEntryListValueEntry which holds a Value and a Name to be displayed
Continued work on GuiObjectManager
2015-07-10 04:27:15 +02:00
CrushedPixel
30ebfe96bd
Allowed GuiTimeline instances to have any height (instead of fixed 22px height) and updated draw() method accordingly
...
Added HSV noise to GuiTimeline's textures to somewhat hide the repeating body texture
Implemented GuiTimeline in GuiObjectManager's GuiObjectKeyframeTimeline
Added asInt() method to TimestampValue, to avoid int casts of value field
2015-07-10 03:37:13 +02:00
CrushedPixel
5828b04596
"The Commit that properly implements the disabling of Gui Elements"
...
Added enabled Field to DelegatingElement, which every instance can handle itself
Made isEnabled Field in GuiAdvancedTextField protected for subclasses to access
Made GuiDraggingNumberInput only draggable while enabled
Made GuiDropdown check enabled field before accepting mouse clicks
Properly tints GuiTexturedButton if disabled
2015-07-10 03:37:13 +02:00
CrushedPixel
4ebf6c5b21
GuiKeyframeRepository always loads the Presets from its current Data set (to respect removed/newly added presets)
2015-07-09 16:41:13 +02:00
CrushedPixel
609c731dc0
Got rid of the OpenEmbeddedChannel, an artifact of the ReplayMod's very beginning. Rest in Peace, old friend.
2015-07-09 16:30:42 +02:00
CrushedPixel
16b74d9824
Included Path Interpolation methods in KeyframeList and uses it in PathPreviewRenderer
...
Created newInstance() method in KeyframeValue interface
2015-07-08 23:55:48 +02:00
CrushedPixel
cd27ccd855
Undo replacements of "Timestamp" with "Value" in comments/javadoc in ReplaySender
2015-07-08 23:00:06 +02:00
CrushedPixel
2d19b17626
Finished Layout of GuiObjectManager
2015-07-08 16:54:14 +02:00
CrushedPixel
80a47a61c8
Made GuiDropdown a subclass of GuiAdvancedTextfield, updating the Constructor and removing the now redundant GuiConstants entries
2015-07-08 15:50:12 +02:00
CrushedPixel
e26e09a264
Made GuiDraggingNumberInput fully functional
...
Linked GuiObjectManager to new Keybinding
Renamed RoundUtils#round to RoundUtils#round2Decimals for easier understanding
2015-07-08 12:13:23 +02:00
CrushedPixel
54f35eca03
Made GuiNumberInput a subclass of GuiAdvancedTextField and removed unneccessary IDs from Constructor and GuiConstants
2015-07-08 11:54:47 +02:00
CrushedPixel
8a973fa3e9
Created @Interpolate annotation for Interpolators to know which fields to interpolate (instead of all public fields)
2015-07-08 11:43:58 +02:00
CrushedPixel
64628eaac3
call super in equals/hashCode functions of KeyframesModifyEvent using Lombok
2015-07-08 04:48:20 +02:00
CrushedPixel
901b175efe
Created GuiMarkerTimeline to display Markers again
...
Created helper methods in ReplayHandler to provide information about MarkerKeyframes
2015-07-08 04:46:44 +02:00
CrushedPixel
5100b63964
Warning, GIGANTIC COMMIT!
...
Replaced Keyframe subclasses with Generic Types of Keyframe and replaced all instanceof calls
Replaced implementations of Linear and Spline interpolation to interpolate any Object that extends KeyframeValue and contains at least one public double Field. I'll need this for Keyframe interpolation in CustomImageObject Transformations
Made MarkerKeyframe *no* subclass of Keyframe to avoid conflicts with PositionKeyframe in instanceof checks for Keyframe#getValue
Created KeyframeList which extends ArrayList to provide some helping functions which DRY up the ReplayHandler
Split up ReplayHandler's keyframeList into timeKeyframeList and positionKeyframeList
2015-07-08 04:13:24 +02:00
CrushedPixel
89cc6938f8
Reworked AssetRepository to link every Asset to a UUID
...
UUIDs are now being stored in the Replay File and loaded
2015-07-07 20:14:40 +02:00
CrushedPixel
40acb3f72d
Created Method in ReplayFileAppender to queue all registed files starting with a specific string (e.g. folder name) for deletion
2015-07-07 20:12:19 +02:00
CrushedPixel
e22b37babe
Created ReplayAsset interface and AssetRepository class which can contain such ReplayAssets. ReplayAssets allow users to add custom Files (so far only images, might be extended by .obj files) to the Replay which will later be used for CustomImageObjects.
...
Created GuiReplayManager to allow users to manage their assets.
Created BoundingUtils class to provide a simple method to fit an image into given bounds. This implementation fixes https://trello.com/c/WTnicWkJ/
2015-07-07 18:45:48 +02:00
CrushedPixel
0b1d3d9001
Created AssetFileUtils to provide valid File Extensions for various ReplayAsset implementations. This class has to be updated if new ReplayAsset implementations are added.
2015-07-07 18:42:10 +02:00
CrushedPixel
5e70eece49
Fixed GuiAdvancedTextField being focusable while disabled. This behaviour was inherited from GuiTextField.
2015-07-07 17:23:22 +02:00
CrushedPixel
cf2a8adb4c
Removed backVisible field from CustomImageObject
...
Updated new instance creations of GuiEntryListEntry whose constructor changed in last commit
2015-07-07 17:04:01 +02:00
CrushedPixel
aa3a13b5a8
Updated GuiEntryList to extend GuiAdvancedTextField instead of GuiTextField
2015-07-07 17:02:39 +02:00
CrushedPixel
9a0c5366e1
Updated ExtendedPosition to include a scale value and added it to GuiAssetAdder (which will be renamed soon)
2015-07-07 17:00:35 +02:00
CrushedPixel
1b189c0dac
Added setEnabled() method to GuiElement interface and implemented it everywhere
...
Made GuiFileChooser a child of GuiAdvancedButton instead of GuiButton
2015-07-07 16:55:49 +02:00
CrushedPixel
948803571d
GuiAssetAdder now allows to add/remove/edit Assets in a Replay. These Assets are not being saved yet.
2015-07-06 16:39:40 +02:00
CrushedPixel
bf7b28d53c
Fixed the "M" key being typed in a TextBox adding/removing marker keyframes
2015-07-06 16:39:40 +02:00
CrushedPixel
6225d3956a
Uses Lombok @NoArgsConstructor annotation instead of manually creating empty constructor in SearchQuery.java
2015-07-06 13:54:47 +02:00
CrushedPixel
a5eadd2d01
Created GuiEntryListEntry interface for GuiEntryList contained classes to avoid toString() methods from having to be abused
...
Created GuiFileChooser and according Listeners
Added (non-functional) GuiAssetAdder for CustomImageObjects
2015-07-06 13:44:50 +02:00
CrushedPixel
013d5963ff
Created CustomObjectRenderer to allow for BufferedImages to be rendered at a given Position. This supports Zoom and Rotation on all 3 axes.
2015-07-06 00:28:57 +02:00
CrushedPixel
49e391555c
Fix PathPreviewRenderer's broken Tessellator calls (the result was broken, but because the texture is symmetrical nobody noticed)
2015-07-06 00:27:57 +02:00
CrushedPixel
a444d49d70
Doesn't allow rendering if Optifine is installed and shows error screen
2015-07-05 18:16:18 +02:00
CrushedPixel
6e470fb812
Deselects Items in List after deleting Replay File using ReplayViewer
2015-07-05 18:14:32 +02:00
CrushedPixel
5f76577eed
Properly multi-threaded File Reloading in GuiReplayViewer | https://trello.com/c/shUBbD2z/
2015-07-05 15:36:05 +02:00
CrushedPixel
d62e74a6f7
updateCurrentList() Method in GuiReplayCenter properly checks for Thread.interrupted() to avoid long freeze screens when switching Tab
2015-07-05 01:51:38 +02:00
CrushedPixel
5883dbc9be
Added Search Tab to Replay Center | https://trello.com/c/13VNghWz/
2015-07-05 01:43:59 +02:00
CrushedPixel
c7bb053566
Only load Replay Files once in Replay Viewer to prevent the loader Thread from clashing with itself
2015-07-04 22:24:09 +02:00
CrushedPixel
434238c61d
Unescapes HTML Character Entities in API calls | https://trello.com/c/Bm2Rk57m/
2015-07-04 21:50:57 +02:00
CrushedPixel
57f094dddb
Prevents duplicates from being added when resizing the Replay Viewer
2015-07-04 21:41:56 +02:00
CrushedPixel
da4857ad8e
Properly resize Replay List in Replay Center when resizing the video | https://trello.com/c/AcXGDXYY/
2015-07-04 21:41:25 +02:00
CrushedPixel
770c1da071
Only limit character count in GuiTextArea if it's positive
2015-07-04 21:40:44 +02:00
CrushedPixel
3813673ef6
Added a way to limit a GuiTextArea's maximum character count and used it in GuiUploadFile's Description Text Area
...
Set GuiUploadFile's Description Text Area's line and width limit to a high value for better results on the website | https://trello.com/c/YS9EyYPF/
2015-07-04 21:16:27 +02:00
CrushedPixel
0743b3e1ac
Added Progress Bar and Cancel Button when downloading a Replay File from Replay Center (GuiReplayDownloading) | https://trello.com/c/1ZPhwmp8/
2015-07-04 17:13:02 +02:00
CrushedPixel
22be6d193a
Fixed https://trello.com/c/wwJ2XyGN/ | Jumping in time also moves cursor on Keyframe Timeline
2015-07-04 14:54:49 +02:00
CrushedPixel
7115805d45
Added ProgressFilter to allow for more accurate progress bar in GuiReplayEditingProcess and implemented it | https://trello.com/c/qXWxoTc1/
2015-07-04 14:54:12 +02:00
CrushedPixel
9a30bd70d9
Only rewrites Marker Keyframes in Replay File if they actually changed | https://trello.com/c/tIRxc2lg/
2015-07-03 13:04:39 +02:00
CrushedPixel
ab51cad1fc
Resets color before drawing Eye Icon in GuiReplayOverlay | https://trello.com/c/IxHVkYQ8/
2015-07-03 12:31:14 +02:00
CrushedPixel
d2cead161d
Made GuiKeyframeRepository a lot slimmer (it's so sexy now *__*)
2015-07-03 12:25:56 +02:00
CrushedPixel
0bb335f692
Added Callback before clearing Keyframes | https://trello.com/c/ZzOk0ju1/
2015-07-03 12:12:33 +02:00
CrushedPixel
5960632354
Added Clean Callback Setting to GuiReplaySettings
2015-07-03 11:59:27 +02:00
CrushedPixel
b1bd3de770
Added clearKeyframesCallback Replay Setting to determine whether a confirmation screen will be opened before clearing Keyframes using 'c'
...
Removed unused Replay Settings and removed all warnings from ReplaySettings.java
2015-07-03 11:52:39 +02:00
CrushedPixel
789dba7b50
Cleaned up ReplaySettings code (added @Override annotations, removed non-static calls to static variable)
2015-07-03 11:45:42 +02:00
CrushedPixel
a1941a8be5
Declared several variables in Method declaration final to make the code Java 1.6 compatible
2015-07-03 11:31:50 +02:00
CrushedPixel
c5924dd570
Reworked GuiKeyframeRepository, resolving https://trello.com/c/rEuxk1ls/
2015-07-03 01:34:53 +02:00
CrushedPixel
6a3104c6bc
Moved "Main Menu" Button in Replay Center to the right side because it annoyed Hudeler | https://trello.com/c/wUiKfybu/
2015-07-03 00:26:26 +02:00
CrushedPixel
ff9e341c9a
Added a way to customize the main Command | https://trello.com/c/PAFUGf6x/
2015-07-03 00:08:19 +02:00
CrushedPixel
071a44e526
Uses ProgressUpdateListener interface in GuiUploadFile
2015-07-02 23:17:59 +02:00
CrushedPixel
8c81dd414e
Added new Gui with Progress Bar when editing a Replay using the ReplayEditor | https://trello.com/c/uGFDgv6E/
...
Added ProgressUpdateListener interface for the use with ProgressBars
2015-07-02 23:08:09 +02:00
CrushedPixel
088bb00ab3
Fixed the GuiLoadingListEntry in the ReplayViewer List being removed at a completely wrong time | https://trello.com/c/O26k7DTC/
2015-07-02 15:08:51 +02:00
CrushedPixel
c811c81be1
Optimized Aspect Ratio Calculation in ReplayScreenshot to replace 1280/720 with 16/9
2015-07-02 14:40:48 +02:00
CrushedPixel
4a2c7df25f
Only rewrite Replay Files once after Replay is closed, in order to prevent rewriting the Replay multiple times (e.g. if a Thumbnail gets added while viewing it and the Markers are added upon exiting). This also fixes the Windows File System not allowing the Replay Mod to delete the original .mcpr file because it thinks that it's still being edited.
...
Resolves https://trello.com/c/CmKfRKc0/
2015-07-02 14:40:17 +02:00
CrushedPixel
e1c19d7537
Made custom command line arguments respect placeholders like %FPS%
2015-07-02 13:25:29 +02:00
CrushedPixel
d5007692de
Opens "Please wait" GUI Screen if Replay needs to be edited by ReplayFileAppender
...
Added ReplayExitEvent
2015-07-02 13:24:50 +02:00
CrushedPixel
bfe721c00c
Enabled Keyboard.enableRepeatEvents in GuiRenderSettings
2015-07-01 21:12:55 +02:00
CrushedPixel
dc2c199d0e
Created installation scripts for Windows and Unix to automatically set the ffmpeg PATH variables
2015-07-01 15:27:20 +02:00
CrushedPixel
a189868390
Added Support for custom ffmpeg Command Line Arguments when Rendering a Video | https://trello.com/c/69CNoWuA/
2015-07-01 13:28:41 +02:00
CrushedPixel
9da89c4f07
Finally gave up on trying to inject YouTube 360° Metadata into Videos and removed respective Checkbox in GuiRenderSettings
2015-06-30 18:10:33 +02:00
CrushedPixel
2ae5a95c6f
RenderSettings: The Render Method Dropdown Listener calls the Y Resolution Input's moveCursorBy() Method to recalculate the aspect ratio if neccessary, resolving https://trello.com/c/unn8VGbf/
2015-06-30 15:00:06 +02:00
CrushedPixel
45d69dff77
Created a Method to play Sounds directly from .wav files instead of using the buggy Minecraft Sound System and uses it in SoundHandler#playRenderSuccessSound(), fixing https://trello.com/c/d8hDHkc5/
2015-06-30 14:49:07 +02:00
CrushedPixel
7f1d0f59bc
Added Bitrate Input Field for GuiRenderSettings
2015-06-30 01:33:46 +02:00
CrushedPixel
5e8bfcbc63
If rendering crashes while initializing, an Error Screen telling the user to install ffmpeg is displayed | https://trello.com/c/EDDIqP0V/
2015-06-30 01:33:46 +02:00
CrushedPixel
540588125b
Allow Camera Tilt Reset while other Keys (e.g. Movement) are pressed
2015-06-29 21:25:00 +02:00
CrushedPixel
645edbb20e
Prevent ArrayIndexOutOfBoundsException when loading a newly created Camera Path by loading it from the dirty version | https://trello.com/c/WPikP6ig/
2015-06-29 16:04:20 +02:00
CrushedPixel
e446a0cc6b
Updated FileRating Holder class to fit updated get_ratings API call which now returns a boolean instead of numeric string
2015-06-29 16:02:34 +02:00
CrushedPixel
2d153a24dc
Does not render Player's item/hand if Spectating a Spectator Mode Player
2015-06-29 15:45:46 +02:00
CrushedPixel
7c46259f54
Does not render Players at all if they're invisible (e.g. Spectator Mode) - resolving https://trello.com/c/Hy1NaAKu/
...
Does not render crosshair if hovering over invisible players
2015-06-29 15:44:01 +02:00
CrushedPixel
fb12119e5c
While Recording, only insert S19PacketEntityHeadLook for recording player if value actually changed | https://trello.com/c/9MZeTBgj/
2015-06-29 15:35:12 +02:00
CrushedPixel
f52ed6d92b
Added a static helper class to determine whether an Entity can be spectated or not - this results in DRY code. While doing so, excluded mc.thePlayer from the spectateable Entities, resolving https://trello.com/c/anFRmsfM/
2015-06-29 15:22:52 +02:00
CrushedPixel
45485b9367
Only displays Crosshair if hovered entity can be spectated | https://trello.com/c/CJBVrB2O/
...
Fixes background of lowest line of chat being opaque if Crosshair is rendered | https://trello.com/c/66veZRVH/
2015-06-29 15:07:23 +02:00
CrushedPixel
a101d7a311
Only render Crosshair if hovered Entity can be spectated | https://trello.com/c/CJBVrB2O/
2015-06-29 14:31:44 +02:00
CrushedPixel
66567c3834
Requires at least two Position one Time Keyframe for Camera Paths/Rendering | https://trello.com/c/qJZSno6o/
2015-06-29 13:44:32 +02:00
CrushedPixel
9014396a69
Updated ChatMessageHandler to use Minecraft's Chat Component System instead of Strings with Color Codes | https://trello.com/c/jdl5t5Wj/
2015-06-29 13:44:32 +02:00
CrushedPixel
36c38ddfd3
Rewrote Camera Movement to only respect previous motion direction | Fixes https://trello.com/c/y7nIqj47/
2015-06-29 12:54:56 +02:00
CrushedPixel
d6aadcaf94
Executes mc.refreshResources() in main thread to fix ConcurrentModificationExceptions | https://trello.com/c/4gBrdiyB/104
2015-06-29 12:30:15 +02:00
CrushedPixel
58d7018480
Implemented https://trello.com/c/zflHjAQm/109 | Make Spectating possible using left mouse button ("normal" Spectator Mode behaviour)
2015-06-29 12:25:48 +02:00
CrushedPixel
791f4a71d2
Fixed https://trello.com/c/SHnKmEbd/108 (Spectating Players isn't possible using right click)
2015-06-29 12:22:31 +02:00
CrushedPixel
f862b46274
Prevented repeated Freezes caused by LocalizedResourcePack if ReplayMod.com is not available
2015-06-24 17:55:51 +02:00
CrushedPixel
febdf9be52
Added try/catch block around Language Pack downloader in build.gradle to allow building even if ReplayMod.com is offline (thanks Julian)
2015-06-24 17:55:16 +02:00
CrushedPixel
e883f958cb
Fixed possible NPE in Minecraft#sendClickBlockToController caused by MinecraftTicker
2015-06-22 13:20:06 +02:00
CrushedPixel
a15187b3ec
Added Render Success Sound Effect
2015-06-22 13:19:41 +02:00
CrushedPixel
3524dfbd5f
Added compatibility with GuiTextField#drawTextBox() method in GuiAdvancedTextField
2015-06-18 16:02:59 +02:00
CrushedPixel
39dfa29d70
Added Keyframe type dependant title to GuiEditKeyframe
...
Added Hint to Event Marker Name Input Text Field
2015-06-18 16:02:32 +02:00
CrushedPixel
ceb40d2468
Timelines now only jump when left-clicked, and jumping to a Marker is done via right-click
2015-06-18 15:52:34 +02:00
CrushedPixel
cb6f3426f4
Prevented NPE in StringUtils#splitStringInMultipleRows
2015-06-18 15:52:01 +02:00
CrushedPixel
cd996dcf3b
Replay Timeline doesn't draw blue Spectator Keyframes connections anymore
...
Keyframe Timeline doesn't have the Marker hover texts anymore
2015-06-18 12:04:42 +02:00
CrushedPixel
7f93a119be
Adapted improved Password requirements (up to 32 instead of up to 16 characters)
2015-06-17 12:06:21 +02:00
CrushedPixel
b463dcaa4d
Removed debug message in GuiPlayerOverview
2015-06-16 22:37:17 +02:00
CrushedPixel
163faddded
Only allows Living Entities and Paintings to be spectated
2015-06-16 22:36:56 +02:00
CrushedPixel
2991131c3a
Removed unused MarkerButton code from GuiReplayOverlay
...
Resets Keyframe Timeline's Zoom and Slider Position
2015-06-16 22:36:27 +02:00
CrushedPixel
f33c00814a
Properly resets GuiReplaySpeedSlider's text value when calling reset() function
2015-06-16 22:35:51 +02:00
CrushedPixel
828f3c9ba0
Made Advanced Settings ToggleButtons toggleable (Path Interpolation and Force Render Chunks setting)
2015-06-16 21:41:14 +02:00