Commit Graph
100 Commits
Author SHA1 Message Date
CrushedPixel bfc591e7b6 Finished the AdvancedPositionKeyframeList and SpectatorDataInterpolation 2015-09-10 19:31:07 +02:00
CrushedPixel 2b3a5905e8 The newInstance Method of SpectatorData now returns an AdvancedPosition object to prevent IllegalStateExceptions from occurring when using the toString() method on the SpectatorData object without an entityID 2015-09-10 19:31:07 +02:00
CrushedPixel 20df12128b The EntityPositionTracker now returns copies of its values to prevent them from being changed 2015-09-10 19:31:07 +02:00
CrushedPixel da9ce46613 Change ReplayHandler and KeyframesModifyEvent to use AdvancedPositionKeyframeList instead of KeyframeList<AdvancedPosition> 2015-09-10 19:31:07 +02:00
CrushedPixel 0d30350967 Created AdvancedPositionKeyframeList, whose interpolation methods properly handle Spectator Keyframes using the SpectatorDataInterpolation 2015-09-10 19:31:07 +02:00
CrushedPixel 7196bc03bd Rebalance the maximum and default SpectatorDataThirdPersonInfo#shoulderCamSmoothness values (+1 squashed commit)
Squashed commits:
[d1374a7] Information about the shoulder camera's position are now stored in a separate, interpolateable Object instead of directly in the SpectatorData Object
2015-09-10 19:31:07 +02:00
CrushedPixel d839204855 Removed the "Prepare Replay" setting (+1 squashed commit)
Squashed commits:
[74a16a9] Created EntityPositionTracker, which parses the whole Replay when initially loading it and remembers every Entity's Position at any timestamp.
The EntityPositionTracker can be disabled using a Replay Setting.
2015-09-10 19:27:01 +02:00
CrushedPixel c4be5ec7e6 Change AdvancedPosition constructor to accept doubles for pitch and yaw, as the internal objects are doubles as well 2015-09-09 18:22:01 +02:00
CrushedPixel d736863b96 Disallow leaving spectating while in Camera Path 2015-09-09 18:21:00 +02:00
CrushedPixel e00064e00c Better error output when GuiReplayViewer can't load .mcpr file to see which file can't be read 2015-09-09 17:45:41 +02:00
CrushedPixel fba579ebf8 The ReplayProcess now respects the basic settings of SpectatingMethod.SHOULDER_CAM, Smoothness and interpolation between two SHOULDER_CAM Keyframes is yet to be implemented 2015-09-09 15:27:21 +02:00
CrushedPixel ed8eb318ea Changed Pitch/Yaw Offset Input fields in GuiEditKeyframe to only accept Integer values 2015-09-09 15:26:18 +02:00
CrushedPixel 030374df2a Fixed GuiNumberInput#getIntValue() returning 0 if floating point number is entered 2015-09-09 15:22:39 +02:00
CrushedPixel eeded7a7fd Spectator Keyframe segments using Shoulder Camera are rendered in a different color on the timeline 2015-09-06 18:35:15 +02:00
CrushedPixel ad9806ed24 Created proper GuiEditKeyframe window for Spectator Keyframes, with possibility to toggle the Spectating Method and set its values 2015-09-06 18:35:15 +02:00
CrushedPixel 2ba7aec847 Added SpectatingMethod attribute to SpectatorData object, and more variables for the SHOULDER_CAM SpectatingMethod 2015-09-06 18:35:15 +02:00
CrushedPixel 78bb48b62f Added setters for Position and Size variables to GuiElement interface and implemented them 2015-09-06 18:35:15 +02:00
CrushedPixel a56d800d43 Added config entry in advancedSettings to disable initial login prompt 2015-09-06 18:35:15 +02:00
CrushedPixel eb8d9f5844 Fix comparison of Spectator Keyframe's Entity IDs using Integer objects, thus failing because of the use of == 2015-09-04 19:13:17 +02:00
CrushedPixel 1e0f5de800 Correctly parse Keyframe Presets with the new Spectator Keyframes from JSON 2015-09-04 17:51:31 +02:00
CrushedPixel 1b8c5dc47a In first-person spectator mode, render the items in the players hand if it's invisible, only the hand should be invisible 2015-09-04 17:45:27 +02:00
CrushedPixel 2f522c68fe Instead of using AdvancedPosition objects with a value for spectatedEntityID, use SpectatorData objects for Spectator Keyframes. This allows us to add more options to Spectator Keyframes. 2015-09-04 17:38:10 +02:00
CrushedPixel e0785b4f25 Don't render an Entity's nametag if it's invisible and the renderInvisible setting is set to false 2015-09-04 17:32:58 +02:00
CrushedPixel 409c215937 Do not completely hide invisible players in the Replay (their armor wasn't rendered) 2015-09-04 08:34:17 +02:00
CrushedPixel 9d4fdccb0f Added option to completely hide invisible entities like Armor Stands instead of them being rendered semi-transparent 2015-09-04 01:32:57 +02:00
CrushedPixel 89e51ef515 Version 1.0.4 2015-09-02 17:11:13 +02:00
CrushedPixel 97fad83868 Fix direct calls to drawTextBox in GuiEntryList and GuiDropdown incorrectly rendering the Gui Element. Direct calls to drawTextBox are nevertheless deprecated from now on. 2015-09-02 15:40:56 +02:00
CrushedPixel 03aead65b6 Gigantic warning cleanup 2015-08-31 17:49:21 +02:00
CrushedPixel dd1aab16ef Fixed the probably most retarded thing one of us has ever done (and I think it wasn't me this time) - connecting Replays now works again 2015-08-31 17:48:14 +02:00
CrushedPixel 5eed7a8246 Fixed NPE when trying to open a downloaded file with an empty replay_recordings folder 2015-08-31 17:48:14 +02:00
CrushedPixel e0259d0c5a Some general warning cleanup 2015-08-31 17:48:14 +02:00
CrushedPixel 6d7946d8a7 Properly respect expanded state of GuiDropdown in its isHovering() method 2015-08-31 17:48:14 +02:00
CrushedPixel e1d307cfcf Only poll Mouse Wheel change if hovering over GuiDropdown/GuiEntryList to avoid multiple Elements clashing 2015-08-31 17:48:14 +02:00
CrushedPixel 635e821688 Removed unneccessary import in GuiObjectManager (yay, no warnings!) 2015-08-31 17:48:14 +02:00
CrushedPixel bc7a67cda3 Revert "Locally added removed Forge Methods from 1.7 which allow us to load .obj and Techne Models"
This reverts commit 6712e8c488.
2015-08-30 21:11:38 +02:00
CrushedPixel ca6cfa6b86 Increased maximum Password length from 32 to 1024 2015-08-30 21:10:48 +02:00
CrushedPixel 6712e8c488 Locally added removed Forge Methods from 1.7 which allow us to load .obj and Techne Models 2015-08-30 21:10:48 +02:00
CrushedPixel d31128fc11 Fix GuiReplayOverlay not resizing upon Gui Scale change (did it for you, Johni) 2015-08-22 16:35:18 +02:00
CrushedPixel 959a4c3ce1 Fixed GuiReplaySpeedSlider's Display String incorrectly resetting upon Window resize 2015-08-22 16:35:18 +02:00
CrushedPixel 6f35b175fd Some more cleanup in MinecraftTicker 2015-08-22 16:35:17 +02:00
CrushedPixel 989dbd76e5 Remove unnecessary method calls in MinecraftTicker (mainly Spectator Mod and Item Pick related) 2015-08-22 16:35:17 +02:00
CrushedPixel 605526e524 Clean up unnecessary value assignment in GuiReplaySpeedSlider Constructor, which is overridden by calling the reset() method two statements later 2015-08-22 16:35:17 +02:00
CrushedPixel fd5e351f82 The TickAndRenderListener already handles the Keybindings, no need to do so in GuiMouseInput 2015-08-22 16:35:17 +02:00
CrushedPixel e4b52c62f8 In the TickAndRenderListenener, replace the tick() Method which listens to all TickEvents with a onRenderTick Method which listens only to RenderTickEvents. This way, Key and Mouse Inputs aren't fired more frequently while the Replay is not paused. (Camera Roll has the same speed now while paused and unpaused) 2015-08-22 16:35:17 +02:00
CrushedPixel b63f19d082 Remove unnecessary calls to LWJGL Keyboard functions in KeyInputHandler 2015-08-22 16:35:17 +02:00
CrushedPixel 00b0c56935 Instead of counting all values larger than or equal 1000 as "Ambient Lighting Gamma", only count 1000 itself as "Ambient Lighting Gamma". So unless a Player manually sets his Gamma Value to 1000, the Brightness won't be reset to "Moody" anymore - before this change, every value larger than 1000 would be reset to "Moody" as well. 2015-08-18 21:19:44 +02:00
CrushedPixel f2752f2790 Custom Objects are now being saved with Path Presets instead of globally 2015-08-16 18:30:17 +02:00
CrushedPixel c95c2f0e4c Manually unescape HTML Quote entities to be escaped quotes in the JSON to prevent MalformedJSONExceptions in the GsonApiClient 2015-08-16 18:30:17 +02:00
CrushedPixel 5d551a76d2 Apply a new ResourceLocation to each new CustomImageObject instead of sharing a ResourceLocation 2015-08-16 15:39:17 +02:00
CrushedPixel 0746004421 Places new CustomImageObjects at Camera's exact instead of Block Position 2015-08-16 15:37:21 +02:00
CrushedPixel 5cb4682ad9 Deep-Copies the CustomImageObjects from the original Object List in the GuiObjectManager to prevent the dirty check when closing the GUI from failing 2015-08-16 14:52:32 +02:00
CrushedPixel 46f13a200c For some unknown reason, this combination of mc.toggleFullscreen() and the Swing File Chooser doesn't freeze the JVM on Windows when in Fullscreen 2015-08-16 12:11:06 +02:00
CrushedPixel c7072dbef2 Removed potentially misleading information about Vanilla Shader Support in Default Rendering 2015-08-16 12:11:05 +02:00
CrushedPixel 1d61d6c85c Correctly pause/slow down/speed up the World Border Animation using Mixin magic 2015-08-15 14:37:14 +02:00
CrushedPixel fd9f4529ee Correctly pause/speed up/slow down the End Portal Animation using Mixin magic 2015-08-15 14:32:34 +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 130e45a33a Remove the commented Donation Test Code 2015-08-14 16:26:32 +02:00
CrushedPixel 88cea2d86d Add suspension error to language file 2015-08-12 22:27:11 +02:00
CrushedPixel 2d756bfc9a Fix Transparency of Custom Image Objects 2015-08-12 22:27:11 +02:00
CrushedPixel 0ce09af088 Push/Pop Attributes in PathPreviewRenderer, fixing https://trello.com/c/mROgxEWF/ 2015-08-12 18:20:31 +02:00
CrushedPixel a9fb20fa18 Remove SafeEntityRenderer 2015-08-12 18:20:31 +02:00
CrushedPixel 0c55411f7c Add ThankYou.txt containing all Kickstarter Backers >= $25 2015-08-12 11:49:20 +02:00
CrushedPixel d214a05d76 Updated build.gradle for Version 1.0 #hype!!
Updated mcmod.info to finally contain more than "an example placeholder mod"
2015-08-12 11:32:03 +02:00
CrushedPixel d8cd278399 Prevent NPE in GuiReplayListEntry that can occur when the API returns an invalid Thumbnail 2015-08-12 10:10:37 +02:00
CrushedPixel de082c3230 Uses Mixin Magic to add BlockBreakAnimation Packets to the Replay when a Player breaks a block 2015-08-11 20:01:45 +02:00
CrushedPixel 063a26d4ab Filter instances of S1BPacketEntityAttach that are referring to the Camera Entity 2015-08-11 17:17:55 +02:00
CrushedPixel 59592b938a Added Disclaimer to Replay Editor indicating that bugs may occur 2015-08-11 15:15:44 +02:00
CrushedPixel 189aa18afb Prevent NPE when removing the last Element from the "Connect Replays" list 2015-08-11 15:15:43 +02:00
CrushedPixel c9ce092ae1 Disable "Modify Replay" Button in GuiReplayEditor 2015-08-11 15:15:43 +02:00
CrushedPixel 197500857f Call fireValueChangeEvent() in GuiNumberInput when digits have been deleted 2015-08-11 13:37:27 +02:00
CrushedPixel d98845deab Disabled many Keybindings during Camera Paths 2015-08-09 13:06:57 +02:00
CrushedPixel 40aaf7fbef When initially asked to Log in, rename "Cancel" to "Skip" button to indicate that the user doesn't have to log in in order to use the mod 2015-08-07 12:23:58 +02:00
CrushedPixel 6e07bde07c Update the ApiClient#isVersionUpToDate method to inform the server about the Minecraft Version, which is required to determine whether a newer Mod Version for the given Minecraft Version is available 2015-08-06 13:16:12 +02:00
CrushedPixel d4259c103f Added Shortcut to toggle Interpolation ('O' key) 2015-08-05 13:03:53 +02:00
CrushedPixel b32aaf5609 Initially set the GuiObjectManager's Keyframe Timeline's cursor position to the GuiReplayOverlay's Keyframe Timeline's cursor position 2015-08-04 17:26:00 +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 59624d21b5 mc.gameSettings.mapSoundLevels might be null, handle this case properly 2015-08-04 16:59:40 +02:00
CrushedPixel 59fe1bd493 Added a PNG Sequence Encoding Preset 2015-08-04 12:32:04 +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 eb281b9df4 Added Disclaimer to GuiRegister telling users that registering means they agree with ReplayMod.com's Terms of Services 2015-08-02 13:56:34 +02:00
CrushedPixel 2eab1ddbdb Disable resizing of the game window while rendering if FBOs are not enabled 2015-07-31 13:58:27 +02:00
CrushedPixel 34fe741cc4 Call Minecraft#updateDisplay in VideoRenderer if not in High Performance Mode, to resize the GuiVideoRenderer if user resized screen (requested by many users)
This has no side effects on the rendered video.
Change GuiVideoRenderer#initGui method to allow for resizing
2015-07-30 12:59:54 +02:00
CrushedPixel 7e99cfeb50 Allow for spaces in Replay Names in GuiRenameReplay and use proper variable names instead of copy-pasted SrgNames 2015-07-30 11:43:18 +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 e0a0d9ef53 Fix CameraEntity#moveAbsolute(AdvancedPosition) to properly update head rotation and bounding box 2015-07-30 11:26:31 +02:00
CrushedPixel 8d8fa6a835 Be more reasonable in GuiKeyframeRepository with user inputs, not replacing the keyframeSetList's elements every time the Keyframe Preset's name changes and therefore not calling the Listener which set the nameInput's value every time. This leads to a smoother user experience regarding the nameInput Text Field. 2015-07-30 11:00:44 +02:00
CrushedPixel 62b2e04b85 The Camera Path Play/Pause button now tells the user where it's going to start (current cursor position or start) 2015-07-30 10:54:25 +02:00
CrushedPixel d4e16ee07e Pressing the chat button if a GuiMouseInput is already present closes this GuiMouseInput (easier toggle between mouse and camera mode) 2015-07-29 12:24:43 +02:00
CrushedPixel dd68b1546d The GuiRenderSettings loads their initial settings from the Replay Mod config
Upon rendering, the GuiRenderSettings saves the current RenderOptions to the Replay Mod config
2015-07-28 00:00:38 +02:00
CrushedPixel 1e51b43bdb Added methods to RenderOptions to save/load a RenderOptions object from/to a Forge Configuration instance
Set default bitrate String to "10000K" instead of "10M", which is the same value but is simpler to parse for me
Set default of hideNameTags to false as it is in the GuiRenderSettings
2015-07-27 23:59:27 +02:00
CrushedPixel 0494b9cffe Added a setFPS() method to GuiVideoFramerateSlider to programmatically change the FPS value 2015-07-27 23:58:08 +02:00
CrushedPixel 4a5f66cab9 Fix LegacyKeyframeSetAdapter swallowing spectatedEntityID values of non-legacy Keyframes 2015-07-26 12:38:41 +02:00
CrushedPixel ee2b028ed8 If the cursor on the Keyframe Timeline is at or near the last keyframe, play from the beginning 2015-07-26 12:38:00 +02:00
CrushedPixel 4f69d9e22f Added hover message in GuiUploadFile to tell the user why they can't upload a File 2015-07-25 15:15:59 +02:00
CrushedPixel caf0807e8b Only allow Alphanumerical characters and underscores when registering a new username
Use RegexUtils in GuiUploadFile
2015-07-25 14:53:03 +02:00
CrushedPixel efbf9bd3b9 Created RegexUtils class to provide commonly used Patterns for User input validation 2015-07-25 14:52:25 +02:00
CrushedPixel 5427616ceb Reworked ReplayProcess to get rid of own Interpolation instances (as these can be handled by the KeyframeLists)
Camera Paths are now started from the current cursor position, using Ctrl-click the path always starts from the beginning
2015-07-25 14:11:06 +02:00
CrushedPixel 3b93df30e5 Use a round method that does NOT crash when the computer's language uses commas as delimiter for floating point numbers (yes, German computers had a crash there) 2015-07-24 18:02:37 +02:00
CrushedPixel f91791ff9e Keyframes are now live edited (to allow for better fine tweaking of camera paths) 2015-07-24 18:00:01 +02:00
CrushedPixel 7b67fb4242 Instead of ticking the world once (which updated entities and such), simply set the EntityRenderer's lightmapUpdateNeeded to true when updating Ambient Lighting
Properly handle manual Gamma changes in LightingHandler not to confuse users why their Brightness setting is being reset constantly
2015-07-24 14:35:28 +02:00