Commit Graph

143 Commits

Author SHA1 Message Date
johni0702
f925d56ca2 Split mod into core, recording, replay, render[todo], paths[todo] and extras[wip] modules
Move everything to com.replaymod package
Add KeyBindingRegistry and SettingsRegistry
Recreate settings GUI with new GUI API and dynamically from SettingsRegistry
Use ReplayFile from ReplayStudio
ReplayHandler is now object oriented
Add GuiOverlay, GuiSlider and GuiTexturedButton to GUI API
Rewrite both overlays to use new GUI API
Fix size capping in vertical and horizontal layout
Allow CustomLayouts to have parents
Fix tooltip rendering when close to screen border
Allow changing of columns in GridLayout
2015-10-03 17:36:04 +02:00
CrushedPixel
da9ce46613 Change ReplayHandler and KeyframesModifyEvent to use AdvancedPositionKeyframeList instead of KeyframeList<AdvancedPosition> 2015-09-10 19:31:07 +02:00
CrushedPixel
d736863b96 Disallow leaving spectating while in Camera Path 2015-09-09 18:21:00 +02:00
CrushedPixel
a56d800d43 Added config entry in advancedSettings to disable initial login prompt 2015-09-06 18:35:15 +02:00
johni0702
33d1d03732 Fix player being invisible after respawn
Remove unused PlayerRespawnEvent handler
2015-09-06 15:13:10 +02:00
johni0702
aee9d6b232 Rewrite authentication handling
Fix logout not working until restart
2015-08-31 16:16:22 +02:00
johni0702
d72d12783f Open mouse input gui when command key is pressed 2015-08-31 13:41:50 +02:00
johni0702
6b6f6732d5 Add basic replay restriction system (no restrictions yet) 2015-08-30 15:54:48 +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
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
johni0702
a3d3c2dddc Fix spectating being quit on world change / respawn 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
johni0702
b9ec83b006 Fix IOBE when using special keys and replay is paused
Fix mouse buttons not working when replay is paused
2015-08-15 14:51:47 +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
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
d4259c103f Added Shortcut to toggle Interpolation ('O' key) 2015-08-05 13:03:53 +02:00
johni0702
6422558028 General warning cleanup 2015-07-19 16:21:56 +02:00
CrushedPixel
33ff72b878 Wait until world has loaded when previewing a Camera Path
Clean up unused fields and thus unnecessary methods in ReplayProcess
2015-07-17 14:35:58 +02:00
CrushedPixel
9576e7b35c Prevented NPE in TickAndRenderListener 2015-07-16 13:50:10 +02:00
johni0702
affcb3df0a Fix constantly re-registering the camera entity event handlers 2015-07-15 18:49:07 +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
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
2297808e9d In MinecraftTicker, only handle Key Input if no GUI is open as the GUI will invoke the same dispatchKeypresses() method itself 2015-07-13 16:08:21 +02:00
johni0702
109a025a1e Only use java 6 methods 2015-07-10 14:54: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
johni0702
d4e04feaeb Use new Gui API for GuiLoginPrompt and GuiRegister 2015-07-09 18:24:15 +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
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
64628eaac3 call super in equals/hashCode functions of KeyframesModifyEvent using Lombok 2015-07-08 04:48:20 +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
johni0702
9f4b2d9026 Pause the recording when the integrated server is paused 2015-07-07 13:09:38 +02:00
CrushedPixel
bf7b28d53c Fixed the "M" key being typed in a TextBox adding/removing marker keyframes 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
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
johni0702
3de7394a0c Compare int and Integer using Objects.equals to prevent NPE 2015-06-29 22:28:58 +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
540588125b Allow Camera Tilt Reset while other Keys (e.g. Movement) are pressed 2015-06-29 21:25:00 +02:00
CrushedPixel
7c46259f54 Does not render Players at all if they're invisible (e.g. Spectator Mode) - resolving https://trello.com/c/Hy1NaAKu/
Does not render crosshair if hovering over invisible players
2015-06-29 15:44:01 +02:00
CrushedPixel
fb12119e5c While Recording, only insert S19PacketEntityHeadLook for recording player if value actually changed | https://trello.com/c/9MZeTBgj/ 2015-06-29 15:35:12 +02:00
CrushedPixel
f52ed6d92b Added a static helper class to determine whether an Entity can be spectated or not - this results in DRY code. While doing so, excluded mc.thePlayer from the spectateable Entities, resolving https://trello.com/c/anFRmsfM/ 2015-06-29 15:22:52 +02:00
CrushedPixel
45485b9367 Only displays Crosshair if hovered entity can be spectated | https://trello.com/c/CJBVrB2O/
Fixes background of lowest line of chat being opaque if Crosshair is rendered | https://trello.com/c/66veZRVH/
2015-06-29 15:07:23 +02:00
CrushedPixel
a101d7a311 Only render Crosshair if hovered Entity can be spectated | https://trello.com/c/CJBVrB2O/ 2015-06-29 14:31:44 +02:00
CrushedPixel
36c38ddfd3 Rewrote Camera Movement to only respect previous motion direction | Fixes https://trello.com/c/y7nIqj47/ 2015-06-29 12:54:56 +02:00