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
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
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
johni0702
d29cc85dc8
Fix NPE when loading a replay without marker keyframes
2015-07-13 12:21:18 +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
e9a73cb028
use List interface instead of ArrayList implementation in several places
2015-07-12 20:55:13 +02:00
CrushedPixel
06686d20a6
Added static reference to current VideoRenderer instance to allow CustomObjectRenderer to correctly interpolate Object Transformations while rendering
2015-07-12 18:59:19 +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
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
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
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
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
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
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
0bb335f692
Added Callback before clearing Keyframes | https://trello.com/c/ZzOk0ju1/
2015-07-03 12:12:33 +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
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
johni0702
a058497727
Fix all warnings
...
Add and make use of Lombok
Remove Mojang API
Remove ZipFileUtils
Remove StreamTools in favor of Apache IOUtils
Keyframe should be abstract all derivatives final
Replace clone in Keyframe with copy
Move some constants from GuiReplaySetttings to GuiConstants
2015-06-29 21:45:37 +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
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
40818bd8b5
Open OOM gui screen instead of crash report on OOM
2015-06-29 09:52:46 +02:00
johni0702
b0f253538c
Fix crash on exit of replay (no longer processing clicks mid-rendering) and OpenGL error warnings
...
Remove MCTimerHandler, instead always install the ReplayTimer
2015-06-16 19:33:48 +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
CrushedPixel
05cc37adcc
Marker names are now being displayed when hovering over them
...
Marker names are now editable in GuiEditKeyframe
2015-06-10 16:44:29 +02:00
CrushedPixel
0390533f9b
Markers can now be removed using the M key (in the replay)
2015-06-09 23:20:47 +02:00
CrushedPixel
d891436427
Markers are now being saved upon exiting the Replay
2015-06-09 23:16:45 +02:00
CrushedPixel
0a1680e891
Keyframe Presets now ignore Marker Keyframes and those are not overwritten when loading a preset
2015-06-09 23:05:18 +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
johni0702
146aa40bd4
Fix relative coordinates being taken as absolute
2015-06-04 17:59:46 +02:00
johni0702
eaf987b403
Only set view entity if it's not already set
2015-06-04 14:35:53 +02:00
CrushedPixel
01f80294aa
Spectator Keyframes are now colored blue, and the timespan during which an Entity is spectated is tinted
2015-06-03 14:20:32 +02:00
johni0702
023188a46b
Fix dead lock when jumping after end of replay has been reached
2015-06-02 22:49:17 +02:00
johni0702
a9f5c667f2
Fix dead player artifacts remaining in the world after sync jumping
2015-06-02 17:20:26 +02:00
johni0702
cc4d8f67c2
Play sounds during replay relative to camera
2015-06-01 23:46:45 +02:00
CrushedPixel
fe036d72d8
Added Spectator Keyframes and handles them properly in both normal and rendered Replay Paths
2015-05-31 13:54:34 +02:00
johni0702
431a36c9d9
If resource pack is not located within replay file, fall back to minecraft handling
2015-05-31 12:53:11 +02:00
johni0702
184bfd7f2e
Do not close replay if an exception is caught processing a packet
2015-05-31 11:55:12 +02:00
johni0702
37d31408bd
Save resource packs to replay file and use those during replay
2015-05-29 12:16:28 +02:00
johni0702
61ab4d5717
Fix partial render ticks being reset during sync packet sending
2015-05-27 17:09:41 +02:00
johni0702
9f3a97f65c
Cleanup, relocate and split up GuiReplayOverlay
...
Merge gui resources into one texture
2015-05-26 01:08:22 +02:00
CrushedPixel
d84422d6c5
Spectating a Player now displays his Hand/Item
2015-05-25 22:54:55 +02:00