CrushedPixel
dd86cb8837
Add classic camera controller
2015-11-07 18:19:02 +01:00
CrushedPixel
8bd051eb27
Add metadata injection for 360 degree videos (mp4 format only)
...
Add com.googlecode.mp4parser:isoparser Library to build.gradle
Create inject360Metadata boolean setting in RenderOptions and added respective checkbox to GuiRenderSettings
Create MetadataInjector to inject 360 Degree Spherical Metadata into mp4 videos
2015-09-21 11:59:46 +02:00
CrushedPixel
664e788f7b
Added hoverText and hoverTextColor fields to GuiAdvancedCheckBox to allow for info text to be rendered
2015-09-21 09:58:55 +02:00
CrushedPixel
0ed3f95f6c
SpectatorDataInterpolation code cleanup (+1 squashed commit)
...
Squashed commits:
[6aa2eef] To ensure a continuous camera path, the SpectatorDataInterpolation now directly influences the AdvancedPositionKeyframeList's interpolation's Position Keyframes
2015-09-10 19:31:08 +02:00
CrushedPixel
3bc436c1f6
Remove own interpolators in VideoRenderer and use the KeyframeList's interpolators instead, thus supporting the new Spectator Keyframes
2015-09-10 19:31:08 +02:00
CrushedPixel
603cd4871e
Use the AdvancedPositionKeyframeList's interpolation instead of manually calculating the camera Path in the ReplayProcess
2015-09-10 19:31:08 +02:00
CrushedPixel
b99d49ee72
The PathPreviewRenderer now uses the ReplayHandler's AdvancedPositionKeyframeList's interpolation methods instead of manually handling spectator keyframes
2015-09-10 19:31:07 +02:00
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