Commit Graph

158 Commits

Author SHA1 Message Date
CrushedPixel
531319a4d1 Added Checkbox to GuiRenderSettings to enable/disable Name Tag rendering 2015-07-16 17:28:33 +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
ddc9ff9bcc Re-added Lossless MKV Render Preset 2015-07-16 13:50:22 +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
936f242b4c Added Encoding Presets to GuiRenderSettings and removed Checkbox for Custom Resolution 2015-07-15 16:50:58 +02:00
johni0702
7ee5f86b4e Prevent rendering with invalid resolution 2015-07-15 15:43:01 +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
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
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
ff5481822a Added support for Time Keyframes in GuiEditKeyframe | https://trello.com/c/h33v5cSQ/ 2015-07-13 15:11:13 +02:00
CrushedPixel
ac3474f2bc The output file can now be specified in GuiRenderSettings 2015-07-12 22:13:18 +02:00
CrushedPixel
45f64faa77 Created CustomObjectRepository which can be serialized by Gson, storing all CustomImageObjects created
CustomObjectRepository is now being saved to and loaded from the ReplayFile
The CustomObjectRenderer uses the GuiObjectManager's timeline cursor position as interpolation timestamp for the CustomImageObjects which are drawn if a GuiObjectManager is open (instant preview)
KeyframeList's add() method now removes Keyframes with the same timestamp before adding the new Keyframe
Transformations class now holds default values to prevent NullPointerExceptions in methods calling getTransformationForTimestamp()
Added Javadoc to Transformation POJO
Created NumberValueChangeListener which can be applied to GuiNumberInput objects
Made step size customizable in GuiDraggingNumberInput
Changing a ReplayImageAssets image now notifies the CustomImageObjects linked to that asset
Modified RoundUtils to provide a round() method which uses the DecimalFormat class instead of Math.round which is unstable
2015-07-12 16:21:11 +02:00
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
2d19b17626 Finished Layout of GuiObjectManager 2015-07-08 16:54:14 +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
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
johni0702
0c94bc9ce6 Set fov modifier during rendering to 1 when in camera view 2015-07-07 14:33:25 +02:00
johni0702
9f4b2d9026 Pause the recording when the integrated server is paused 2015-07-07 13:09:38 +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
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
a444d49d70 Doesn't allow rendering if Optifine is installed and shows error screen 2015-07-05 18:16:18 +02:00
CrushedPixel
5883dbc9be Added Search Tab to Replay Center | https://trello.com/c/13VNghWz/ 2015-07-05 01:43:59 +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
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
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
ff9e341c9a Added a way to customize the main Command | https://trello.com/c/PAFUGf6x/ 2015-07-03 00:08:19 +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
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
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
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
johni0702
18ec3cccc5 Realign all particles towards the camera when rendering 360° frames 2015-06-28 18:13:42 +02:00
CrushedPixel
a15187b3ec Added Render Success Sound Effect 2015-06-22 13:19:41 +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
7f93a119be Adapted improved Password requirements (up to 32 instead of up to 16 characters) 2015-06-17 12:06:21 +02:00
CrushedPixel
3341b3e681 Added Keybinding to toggle Path Preview Visibility 2015-06-15 14:42:41 +02:00
CrushedPixel
3df1bdcfc8 Added PathPreviewRenderer to draw a Preview of the current Camera Path into the World
Added KeyframesModifyEvent to be dispatched whenever the ReplayHandler's Keyframe List is changed
Refactored Event package
Reworked Settings GUI
2015-06-15 14:41:20 +02:00
johni0702
be4ee42dcb Add GuiTextArea
Reorder and add description to GuiUpload
2015-06-14 14:13:03 +02:00
CrushedPixel
2f7692d863 The Position Keyframe Button now turns into a Spectator Keyframe Button when Spectator Keyframe is selected or no Position Keyframe Selected and spectating an Entity 2015-06-14 10:42:51 +02:00
CrushedPixel
b2ad52d5b6 Markers are now subclasses of Keyframe
Markers can now be moved and jumped to on the Replay Timeline
2015-06-09 22:55:20 +02:00
CrushedPixel
d30ef19c89 Added Event Markers to Replay, which allow players to quickly mark important events while recording (M key by default)
Added Event Marker Indicators to be displayed on GuiTimeline
2015-06-09 16:08:06 +02:00
CrushedPixel
ea968ca418 Added support for Descriptions in API Client
Added hint for Replay Name in GuiUploadFile
2015-06-04 19:26:28 +02:00
CrushedPixel
466727e285 Set maximum username length to 16 2015-06-04 17:10:10 +02:00
CrushedPixel
9c01db6fe1 Localized SecondsToString method in DurationUtils
Added compact SecondsToShortString method to DurationUtils
2015-06-04 16:14:45 +02:00
johni0702
edd01b3981 Fix shader compatibility in default renderer
Disable shaders in cubic and stereoscopic rendering
2015-06-04 14:21:44 +02:00