Commit Graph

64 Commits

Author SHA1 Message Date
johni0702
6b6f6732d5 Add basic replay restriction system (no restrictions yet) 2015-08-30 15:54:48 +02:00
johni0702
a3d3c2dddc Fix spectating being quit on world change / respawn 2015-08-19 12:22:55 +02:00
johni0702
cd19a768a1 Add option for showing chat messages 2015-08-19 12:22:55 +02:00
johni0702
d1e55266e2 The fake player now has the same entity id as the recording player as assigned by the server
This fixes arrows bumping into recording player in replay
ReplaySender converts old replays on the fly
Do not insert PlayerListEntry as it's already contained in the replay
2015-08-19 12:22:55 +02:00
CrushedPixel
599aa2cf53 Redirect S19PacketEntityStatus to the Replay Player's entityID in ReplaySender
Removed unnecessary Event Listeners in RecordingHandler that injected S19PacketEntityStatus whenever the Player was damaged or died
2015-08-14 16:26:32 +02:00
CrushedPixel
063a26d4ab Filter instances of S1BPacketEntityAttach that are referring to the Camera Entity 2015-08-11 17:17:55 +02:00
CrushedPixel
1d1193bd25 Do not send Sound Effect Packets while rendering, as they might blow your ear away afterwards 2015-08-04 17:04:15 +02:00
CrushedPixel
7d2895af3a Set all sound volume levels (except for master) to 0 before rendering a video to prevent all sounds the replay might produce from being played, but GUI interactions still play sounds 2015-08-03 16:25:40 +02:00
CrushedPixel
7bc3574515 When setting the last camera position before a time jump, a boolean has to be passed indicating whether that position should be enforced or ignored if it's out of a reasonable distance from the player's position.
This is used by the GuiMarkerTimeline to ensure that jumping to Marker Keyframes actually results in the Marker Keyframe's Position.

The actual code handling Position jumping after Time jumping was moved to the ReplayHandler and is now also called when jumping using the "Please wait" Screen.
2015-07-30 11:29:45 +02:00
CrushedPixel
0a71266a05 Properly filters S2BPacketChangeGameState to include weather effects like rain or sky color change | https://trello.com/c/hE8Uck3m/
Do not show Titles and Chat in Replay | https://trello.com/c/SUPgAjf1/
2015-07-21 18:10:46 +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
0c7e7a3e0c removed unnecessary null check when calling ReplayHandler#getCameraEntity in ReplaySender 2015-07-16 19:41:24 +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
cd27ccd855 Undo replacements of "Timestamp" with "Value" in comments/javadoc in ReplaySender 2015-07-08 23:00:06 +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
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
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
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
johni0702
146aa40bd4 Fix relative coordinates being taken as absolute 2015-06-04 17:59:46 +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
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
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
johni0702
538e95ad95 Set name of unnamed threads 2015-05-24 15:18:41 +02:00
johni0702
0ac9630a22 Close downloading-terrain-screen when swallowing the PlayerPosLook packet 2015-05-24 14:52:11 +02:00
johni0702
cc12ed7be1 Prevent SOE when replaying sessions recorded on faster machines 2015-05-15 18:28:39 +02:00
johni0702
136761b424 Clean up and restructure the replay sender
Add a ReplayFile class for easy reading of replay files
2015-05-11 14:15:00 +02:00
johni0702
20625b7180 Replace reflection with getters and access transformers where possible 2015-05-05 14:09:25 +02:00
CrushedPixel
aeb8f5c0cb Minor code refactoring 2015-05-05 10:52:18 +02:00
CrushedPixel
e8320ebd0f Added Keyframe Repository, which is stored in Replay File itself and allows Camera Path Presets to be saved and loaded 2015-05-01 23:20:16 +02:00
CrushedPixel
ae5eca9c99 Localized Keyboard Bindings and added "Synchronize Timeline" and "Clear Keyframes" 2015-04-30 17:46:13 +02:00
CrushedPixel
0003f040ed Refactored and reformatted code to use less static variables 2015-04-23 14:09:54 +02:00
Marius Metzger
96fa350bc6 Made chunk loading block independent from computer's performance
Fixed UI glitch in Survival caused by incorrect usage of the GL Manager
2015-04-11 10:58:00 +02:00
Marius Metzger
66e27a97a4 .tmcpr files are now being deleted upon starting the game
Finally fixed Replay code
Finally fixed Lighting code
2015-04-06 16:00:08 +02:00
Marius Metzger
e4d282bffe Added Option to force load all chunks when rendering
Rewrote a lot of the Settings code
Started destroying the ReplayProcess, gonna fix that ASAP
2015-04-06 11:00:32 +02:00
Marius Metzger
e7c2a462f3 Significantly improved the performance of video rendering by using the magic of multithreading 2015-04-05 02:10:44 +02:00
Marius Metzger
f3cb4011fc Replays now support Server Resource Packs
Reworked Replay Settings code
2015-04-03 01:22:26 +02:00
Marius Metzger
c23d2a0d0e Now cancels current path when exiting Replay Viewer
Disabled opening the inventory while in the Replay Viewer
2015-03-31 18:52:17 +02:00
Marius Metzger
5b859340fd Fixed two similar time keyframes not setting the Replay Speed to 0 sometimes 2015-03-31 17:50:39 +02:00
Marius Metzger
becbf47088 Reworked Camera Movement in Replay Viewer
Finally made Replay Trimming work
Fixed and dried ReplayProcess pathTick() method
2015-03-31 01:10:01 +02:00
Marius Metzger
11e26e0129 Updated build.gradle to automatically build fat jars with the dependencies in the /libs folder. This utilizes the shade.sh shell script. Use ./gradlew without explicitely invoking the build task, as this will automatically build a fat jar.
Sorry for this painful commit, but git somehow f'd up and sees changes in files where there aren't any.
2015-03-21 17:05:53 +01:00
Marius Metzger
14f53f7429 Added Core Mod to redirect the Enchantment Rendering getSystemTime() calls to a the EnchantmentTimer (glow now slows down) 2015-03-16 01:45:36 +01:00
Marius Metzger
a38f87e377 Finished Trim Part for Replay Studio
Fixed Scroll Bar for GuiSpectateSelection
2015-03-12 12:56:37 +01:00
Marius Metzger
9b69681ef0 Pushed missing files
Started adding Replay Editor using johni0702's excellent ReplayStudio Library
Added fully functional GuiDropdown GUI Element (useable in other projects as well)
2015-03-10 00:34:26 +01:00
Marius Metzger
b4ce266375 Disabled Head rotation while saving replay video
Made video rendering possible while Minecraft is in background
2015-03-08 22:51:50 +01:00
Marius Metzger
2cf53d233a Fixed some weird stuff I did back in the days when first writing the Packet Serialization. 2015-02-20 12:54:23 +01:00