Commit Graph

58 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
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
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
409c215937 Do not completely hide invisible players in the Replay (their armor wasn't rendered) 2015-09-04 08:34:17 +02:00
CrushedPixel
03aead65b6 Gigantic warning cleanup 2015-08-31 17:49:21 +02:00
johni0702
d687748629 The camera entity is now thePlayer 2015-08-19 12:22:55 +02:00
johni0702
a4dfb7ccf9 Fix fire overlay not being rendered when spectating 2015-08-14 22:17:50 +02:00
johni0702
cf59d739b5 Fix hands being visible during 360° rendering 2015-08-14 16:20:14 +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
johni0702
4efdc0ebd0 Replace CustomEntityHandler with mixin magic 2015-08-04 23:18:23 +02:00
CrushedPixel
4dccf5b3b6 Only render Path Preview within Render Distance 2015-07-20 01:14:53 +02:00
CrushedPixel
a46a223070 Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer 2015-07-17 13:33:54 +02:00
CrushedPixel
d25046d091 Fixed NPE in CustomObjectRenderer caused by mc.getRenderViewEntity() returning null 2015-07-16 14:45:26 +02:00
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
3e77e72f5a Sleepy me forgot to disable Path Previews while in Path 2015-07-14 12:08:23 +02:00
CrushedPixel
eb4f0fcc20 Added Preview for Camera's Position and look direction in Path Previews
Added getDestination() method to AdvancedPosition to calculate the destination based on a step size and the position's pitch/yaw
2015-07-14 04:25:19 +02:00
CrushedPixel
0ff40cc0f5 Fixed Custom Image Objects being rendered through blocks 2015-07-14 02:21:51 +02:00
CrushedPixel
bb05e3648d Cleaned up OpenGL calls in CustomObjectRenderer and PathPreviewRenderer and properly displays CustomImageObjects behind Path Preview Markers | https://trello.com/c/FaiMoTDK/ 2015-07-12 23:33:11 +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
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
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
cf2a8adb4c Removed backVisible field from CustomImageObject
Updated new instance creations of GuiEntryListEntry whose constructor changed in last commit
2015-07-07 17:04:01 +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
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
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
49e391555c Fix PathPreviewRenderer's broken Tessellator calls (the result was broken, but because the texture is symmetrical nobody noticed) 2015-07-06 00:27:57 +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
3122c0a71e Reduce object creation during rendering of path preview
Skip sqrt when comparing distances
2015-06-29 21:39:40 +02:00
CrushedPixel
2d153a24dc Does not render Player's item/hand if Spectating a Spectator Mode Player 2015-06-29 15:45:46 +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
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
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
johni0702
d171ff4346 Allow custom resolution for all video rendering modes
Remove tiled rendering
Choose different rendering strategy based on video size and framebuffer support
Make size of video writer queue configurable via system properties
2015-06-03 21:20:03 +02:00
CrushedPixel
173b8ccfc1 Register SpectatorRenderer in EVENT_BUS to call RenderHandEvent 2015-06-02 19:05:43 +02:00
CrushedPixel
5f4cddcfbc Automatically registers SpectatorRenderer Objects in constructor to avoid forgetting them 2015-06-01 15:17:25 +02:00
johni0702
4c5e084edc Use UUIDs instead of entity ids for storing invisible players 2015-06-01 14:35:44 +02:00
johni0702
779d0841d6 Properly render spectator hand in all custom rendering modes
Fix hand clipping with nearby blocks
Immediately show hand/item if a different player is spectated
2015-05-31 17:24:50 +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
CrushedPixel
e031d32d7d Made SpectatorRenderer code readable for the average human who does not happen to know all of the MCPBot's field and function name translations. 2015-05-26 00:58:30 +02:00
CrushedPixel
332c36a244 Added SkinProvider to provide loaded Skins for loaded Players in a Replay
Uses SkinProvider in GuiPlayerOverview instead of requesting the Skin from the Mojang API
2015-05-25 23:30:30 +02:00
CrushedPixel
d84422d6c5 Spectating a Player now displays his Hand/Item 2015-05-25 22:54:55 +02:00
CrushedPixel
2ecbef3641 Started implementing Spectator Hand Rendering 2015-05-25 14:18:32 +02:00
johni0702
c7d974b24d Use ASM instead of inheritance to override methods in RenderGlobal 2015-05-25 13:13:21 +02:00
CrushedPixel
4398d96326 Excluded mc.thePlayer from being rendered 2015-05-24 12:43:49 +02:00
CrushedPixel
af22e562c6 Excluded CameraEntity from rendered Entities (untested) 2015-05-24 12:37:02 +02:00