mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-28 16:06:48 +01:00
The forgotten Keyframes
- Added Keyframes to scenes created before the feature existed
This commit is contained in:
parent
91bc678ab4
commit
bc2b5169c8
9 changed files with 84 additions and 1 deletions
|
@ -46,6 +46,7 @@ public class BearingScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(anchorPos), 60)
|
||||
.colored(PonderPalette.GREEN)
|
||||
.pointAt(util.vector.blockSurface(windmill, Direction.WEST))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("Windmill Bearings attach to the block in front of them");
|
||||
scene.idle(50);
|
||||
|
@ -88,6 +89,7 @@ public class BearingScenes {
|
|||
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.blockSurface(anchorPos, Direction.NORTH))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("If enough Sail-like blocks are attached to the block, it can act as a Windmill");
|
||||
scene.idle(70);
|
||||
|
@ -109,6 +111,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(windmill))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Activated with Right-Click, the Windmill Bearing will start providing Rotational Force");
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -125,6 +128,7 @@ public class BearingScenes {
|
|||
scene.overlay.showCenteredScrollInput(windmill, Direction.WEST, 50);
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(surface)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.text("Use a Wrench to configure its rotation direction");
|
||||
scene.idle(36);
|
||||
|
@ -184,6 +188,7 @@ public class BearingScenes {
|
|||
scene.overlay.showOutline(PonderPalette.BLUE, bearingPos, util.select.fromTo(3, 2, 1, 3, 3, 2), 80);
|
||||
scene.overlay.showSelectionWithText(util.select.fromTo(3, 2, 4, 3, 3, 5), 80)
|
||||
.colored(PonderPalette.BLUE)
|
||||
.attachKeyFrame()
|
||||
.text("Any Structure can count as a valid Windmill, as long as it contains at least 8 sail-like Blocks.");
|
||||
|
||||
scene.idle(90);
|
||||
|
@ -225,6 +230,7 @@ public class BearingScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.pointAt(util.vector.blockSurface(bearingPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Mechanical Bearings attach to the block in front of them");
|
||||
scene.idle(50);
|
||||
|
||||
|
@ -245,6 +251,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(80)
|
||||
.pointAt(util.vector.topOf(bearingPos.up()))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Upon receiving Rotational Force, it will assemble it into a Rotating Contraption");
|
||||
scene.idle(37 * 2);
|
||||
scene.world.setKineticSpeed(all, 0);
|
||||
|
@ -273,6 +280,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(120)
|
||||
.pointAt(util.vector.topOf(bearingPos.up()))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("movement_anchors");
|
||||
|
||||
scene.idle(37 * 4);
|
||||
|
@ -331,6 +339,7 @@ public class BearingScenes {
|
|||
.pointAt(util.vector.blockSurface(bearingPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.RED)
|
||||
.attachKeyFrame()
|
||||
.text("When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle");
|
||||
scene.idle(110);
|
||||
|
||||
|
@ -343,6 +352,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.blockSurface(bearingPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("behaviour_modify_wrench");
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -389,6 +399,7 @@ public class BearingScenes {
|
|||
|
||||
scene.overlay.showSelectionWithText(util.select.position(bearingPos), 60)
|
||||
.text("Whenever Mechanical Bearings are themselves part of a moving Structure..")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -410,6 +421,7 @@ public class BearingScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(bearingPos.north()), 60)
|
||||
.colored(PonderPalette.GREEN)
|
||||
.text("Once again, the bearing will attach to the block in front of it")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -455,6 +467,7 @@ public class BearingScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.pointAt(util.vector.blockSurface(bearingPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Clockwork Bearings attach to blocks in front of them");
|
||||
scene.idle(50);
|
||||
|
||||
|
@ -472,6 +485,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(80)
|
||||
.pointAt(util.vector.blockSurface(bearingPos.north(), Direction.NORTH))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Upon receiving Rotational Force, the structure will be rotated according to the hour of the day");
|
||||
scene.idle(90);
|
||||
|
||||
|
@ -501,6 +515,7 @@ public class BearingScenes {
|
|||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.blockSurface(bearingPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Right-Click the bearing to start or stop animating the structure");
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -513,6 +528,7 @@ public class BearingScenes {
|
|||
scene.idle(15);
|
||||
scene.overlay.showSelectionWithText(util.select.fromTo(3, 3, 1, 3, 4, 2), 80)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("movement_anchors");
|
||||
scene.idle(90);
|
||||
|
||||
|
@ -525,6 +541,7 @@ public class BearingScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(bearingPos.north(3)), 80)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.BLUE)
|
||||
.attachKeyFrame()
|
||||
.text("In front of the Hour Hand, a second structure can be added");
|
||||
scene.idle(90);
|
||||
scene.overlay.showControls(clickTheBearingSide.rightClick(), 20);
|
||||
|
|
|
@ -87,6 +87,7 @@ public class BeltScenes {
|
|||
|
||||
scene.overlay.showText(80)
|
||||
.text("Right-Clicking two shafts with a belt item will connect them together")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(2, 1, 2));
|
||||
scene.idle(90);
|
||||
|
@ -100,6 +101,7 @@ public class BeltScenes {
|
|||
scene.overlay.showText(80)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Accidental selections can be canceled with Right-Click while Sneaking")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.centerOf(backEnd.south(1)));
|
||||
scene.idle(43);
|
||||
|
@ -118,6 +120,7 @@ public class BeltScenes {
|
|||
|
||||
scene.overlay.showText(43)
|
||||
.text("Additional Shafts can be added throughout the Belt")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(shaftLocation, Direction.NORTH));
|
||||
scene.idle(50);
|
||||
|
@ -146,6 +149,7 @@ public class BeltScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(50)
|
||||
.text("Added shafts can be removed using the wrench")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(shaftLocation, Direction.NORTH));
|
||||
scene.idle(70);
|
||||
|
@ -212,6 +216,7 @@ public class BeltScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(to)
|
||||
.attachKeyFrame()
|
||||
.text("1. They can connect horizontally");
|
||||
|
||||
scene.idle(20);
|
||||
|
@ -236,6 +241,7 @@ public class BeltScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(to)
|
||||
.attachKeyFrame()
|
||||
.text("2. They can connect diagonally");
|
||||
|
||||
scene.idle(20);
|
||||
|
@ -258,6 +264,7 @@ public class BeltScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(to)
|
||||
.attachKeyFrame()
|
||||
.text("3. They can connect vertically");
|
||||
|
||||
scene.idle(20);
|
||||
|
@ -282,6 +289,7 @@ public class BeltScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(to)
|
||||
.attachKeyFrame()
|
||||
.text("4. And they can connect vertical shafts horizontally");
|
||||
|
||||
scene.idle(20);
|
||||
|
@ -375,6 +383,7 @@ public class BeltScenes {
|
|||
scene.overlay.showText(60)
|
||||
.placeNearTarget()
|
||||
.pointAt(topOf.subtract(0, 0.1, 0))
|
||||
.attachKeyFrame()
|
||||
.text("Right-Click with an empty hand to take items off a belt");
|
||||
scene.idle(20);
|
||||
scene.world.removeItemsFromBelt(util.grid.at(3, 2, 2));
|
||||
|
@ -425,6 +434,7 @@ public class BeltScenes {
|
|||
|
||||
scene.overlay.showText(80)
|
||||
.text("Brass or Andesite Casing can be used to decorate Mechanical Belts")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.centerOf(beltPos2));
|
||||
|
||||
scene.idle(40);
|
||||
|
@ -455,6 +465,7 @@ public class BeltScenes {
|
|||
scene.world.modifyBlock(pos, s -> s.with(BeltBlock.CASING, true), true);
|
||||
}
|
||||
scene.idle(30);
|
||||
scene.addKeyframe();
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(beltPos.south()), Pointing.DOWN).rightClick()
|
||||
|
|
|
@ -50,6 +50,7 @@ public class ChainDriveScenes {
|
|||
scene.idle(20);
|
||||
scene.overlay.showText(60)
|
||||
.text("Chain Drives relay rotation to each other in a row")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 1, 4), Direction.WEST));
|
||||
scene.idle(60);
|
||||
|
@ -65,12 +66,14 @@ public class ChainDriveScenes {
|
|||
scene.idle(20);
|
||||
scene.overlay.showText(60)
|
||||
.text("All shafts connected like this will rotate in the same direction")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 1, 1), Direction.WEST));
|
||||
scene.idle(50);
|
||||
scene.world.hideSection(shafts, Direction.WEST);
|
||||
scene.idle(25);
|
||||
|
||||
scene.addKeyframe();
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(rotatedECD), Pointing.DOWN).rightClick()
|
||||
.withWrench(), 30);
|
||||
scene.idle(7);
|
||||
|
@ -117,6 +120,7 @@ public class ChainDriveScenes {
|
|||
|
||||
scene.overlay.showText(60)
|
||||
.text("Unpowered Chain Gearshifts behave exactly like Chain Drives")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(eastDrive, Direction.NORTH));
|
||||
scene.idle(60);
|
||||
|
@ -153,6 +157,7 @@ public class ChainDriveScenes {
|
|||
|
||||
scene.overlay.showText(80)
|
||||
.text("When Powered, the speed transmitted to other Chain Drives in the row is doubled")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.FAST)
|
||||
.pointAt(util.vector.blockSurface(eastDrive.west(2), Direction.WEST));
|
||||
|
@ -197,6 +202,7 @@ public class ChainDriveScenes {
|
|||
|
||||
scene.overlay.showText(80)
|
||||
.text("Whenever the Powered Gearshift is not at the source, its speed will be halved instead")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.SLOW)
|
||||
.pointAt(util.vector.blockSurface(eastDrive.west(2), Direction.WEST));
|
||||
|
@ -215,6 +221,7 @@ public class ChainDriveScenes {
|
|||
|
||||
scene.overlay.showText(100)
|
||||
.text("In both cases, Chain Drives in the row always run at 2x the speed of the Powered Gearshift")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(eastDrive.west(2), Direction.WEST));
|
||||
scene.idle(100);
|
||||
|
@ -240,6 +247,7 @@ public class ChainDriveScenes {
|
|||
|
||||
scene.overlay.showText(100)
|
||||
.text("Using analog signals, the ratio can be adjusted more precisely between 1 and 2")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(eastDrive.west(2), Direction.WEST));
|
||||
scene.idle(40);
|
||||
|
|
|
@ -53,6 +53,7 @@ public class FanScenes {
|
|||
|
||||
scene.overlay.showText(80)
|
||||
.text("Encased Fans use Rotational Force to create an Air Current")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(fanPos));
|
||||
scene.idle(90);
|
||||
|
@ -61,6 +62,7 @@ public class FanScenes {
|
|||
Selection reverse = util.select.fromTo(3, 1, 5, 1, 1, 4);
|
||||
scene.world.toggleRedstonePower(util.select.fromTo(leverPos, leverPos.down()));
|
||||
scene.effects.indicateRedstone(leverPos);
|
||||
scene.addKeyframe();
|
||||
scene.world.modifyKineticSpeed(reverse, f -> -f);
|
||||
scene.effects.rotationDirectionIndicator(fanPos.south());
|
||||
scene.special.rotateParrot(flappyBirb, 0, 215 * 2, 0, 30);
|
||||
|
@ -127,6 +129,7 @@ public class FanScenes {
|
|||
.colored(PonderPalette.WHITE)
|
||||
.pointAt(itemVec)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Items caught in the area will be smelted");
|
||||
|
||||
scene.idle(60);
|
||||
|
@ -157,6 +160,7 @@ public class FanScenes {
|
|||
|
||||
scene.overlay.showSelectionWithText(util.select.fromTo(blockPos, blockPos.west(2)), 60)
|
||||
.colored(PonderPalette.BLACK)
|
||||
.attachKeyFrame()
|
||||
.text("Instead, a setup for Smoking using Fire should be used for them");
|
||||
scene.idle(80);
|
||||
|
||||
|
@ -173,6 +177,7 @@ public class FanScenes {
|
|||
|
||||
scene.overlay.showSelectionWithText(util.select.fromTo(blockPos, blockPos.west(2)), 60)
|
||||
.colored(PonderPalette.MEDIUM)
|
||||
.attachKeyFrame()
|
||||
.text("Air Flows passing through water create a Washing Setup");
|
||||
scene.idle(70);
|
||||
|
||||
|
@ -204,6 +209,7 @@ public class FanScenes {
|
|||
.colored(PonderPalette.RED)
|
||||
.pointAt(util.vector.topOf(blockPos.east()))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("The Speed of the Fan does NOT affect the processing speed, only its range");
|
||||
scene.world.destroyBlock(util.grid.at(1, 1, 2));
|
||||
scene.idle(110);
|
||||
|
@ -237,6 +243,7 @@ public class FanScenes {
|
|||
scene.effects.emitParticles(depotTop, Emitter.simple(ParticleTypes.SPIT, Vector3d.ZERO), .5f, 30);
|
||||
scene.overlay.showText(90)
|
||||
.pointAt(depotTop)
|
||||
.attachKeyFrame()
|
||||
.text("Fan Processing can also be applied to Items on Depots and Belts");
|
||||
|
||||
scene.idle(100);
|
||||
|
@ -272,11 +279,12 @@ public class FanScenes {
|
|||
scene.world.showSection(util.select.layersFrom(2), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
BlockPos rightFan = util.grid.at(1, 2, 2);
|
||||
scene.overlay.showText(80)
|
||||
scene.overlay.showText(70)
|
||||
.text("Fans facing down into a source of heat can provide Rotational Force")
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(rightFan, Direction.WEST));
|
||||
scene.idle(80);
|
||||
scene.addKeyframe();
|
||||
|
||||
for (BlockPos pos : new BlockPos[] { rightFan, util.grid.at(3, 2, 2) }) {
|
||||
scene.idle(10);
|
||||
|
|
|
@ -130,6 +130,7 @@ public class FunnelScenes {
|
|||
scene.world.showSection(topFunnelSelection, Direction.DOWN);
|
||||
scene.overlay.showText(80)
|
||||
.text("Placed normally, it pulls items from the inventory.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(topCenter)
|
||||
.placeNearTarget();
|
||||
scene.idle(45);
|
||||
|
@ -150,6 +151,7 @@ public class FunnelScenes {
|
|||
scene.overlay.showControls(controlsSneak, 35);
|
||||
scene.overlay.showText(80)
|
||||
.text("Placed while sneaking, it puts items into the inventory.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(topCenter)
|
||||
.placeNearTarget();
|
||||
scene.idle(45);
|
||||
|
@ -169,6 +171,7 @@ public class FunnelScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(80)
|
||||
.text("Using a wrench, the funnel can be flipped after placement.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(topCenter)
|
||||
.placeNearTarget();
|
||||
|
||||
|
@ -216,6 +219,7 @@ public class FunnelScenes {
|
|||
scene.world.showSection(beltFunnelSetup, Direction.DOWN);
|
||||
scene.overlay.showText(140)
|
||||
.text("Funnels on belts will extract/insert depending on its movement direction.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(topOfBeltFunnel);
|
||||
|
||||
scene.idle(15);
|
||||
|
@ -263,6 +267,7 @@ public class FunnelScenes {
|
|||
scene.idle(8);
|
||||
scene.overlay.showText(360)
|
||||
.text("Funnels should also interact nicely with a handful of other components.")
|
||||
.attachKeyFrame()
|
||||
.independent(0);
|
||||
scene.idle(40);
|
||||
|
||||
|
@ -368,6 +373,7 @@ public class FunnelScenes {
|
|||
|
||||
scene.overlay.showText(60)
|
||||
.text("Andesite Funnels can only ever extract single items.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.topOf(andesiteFunnel))
|
||||
.placeNearTarget();
|
||||
scene.idle(10);
|
||||
|
@ -378,6 +384,7 @@ public class FunnelScenes {
|
|||
|
||||
scene.overlay.showText(60)
|
||||
.text("Brass Funnels can extract up to a full stack.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.topOf(brassFunnel))
|
||||
.placeNearTarget();
|
||||
scene.idle(10);
|
||||
|
@ -393,6 +400,7 @@ public class FunnelScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(80)
|
||||
.text("Scrolling on the filter slot allows for precise control over the extracted stack size.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(filterSlot.getCenter())
|
||||
.placeNearTarget();
|
||||
scene.idle(90);
|
||||
|
@ -436,6 +444,7 @@ public class FunnelScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(80)
|
||||
.text("Using items on the filter slot will restrict the funnel to only transfer matching stacks.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(filterSlot.getCenter())
|
||||
.placeNearTarget();
|
||||
scene.world.setFilterData(util.select.position(brassFunnel), FunnelTileEntity.class, emerald);
|
||||
|
@ -470,6 +479,7 @@ public class FunnelScenes {
|
|||
scene.overlay.showSelectionWithText(funnelSelect, 40)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Funnels cannot ever transfer between closed inventories directly.")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(50);
|
||||
|
||||
|
@ -483,6 +493,7 @@ public class FunnelScenes {
|
|||
scene.overlay.showText(40)
|
||||
.colored(PonderPalette.GREEN)
|
||||
.text("Chutes or Smart chutes might be more suitable for such purposes.")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.centerOf(funnelPos))
|
||||
.placeNearTarget();
|
||||
scene.idle(50);
|
||||
|
|
|
@ -231,6 +231,7 @@ public class KineticsScenes {
|
|||
scene.overlay.showText(60)
|
||||
.text("Shifting from large to small cogs, the conveyed speed will be doubled")
|
||||
.colored(PonderPalette.GREEN)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 2, 3), Direction.NORTH));
|
||||
scene.idle(10);
|
||||
|
@ -269,6 +270,7 @@ public class KineticsScenes {
|
|||
scene.overlay.showText(80)
|
||||
.text("Shifting the opposite way, the conveyed speed will be halved")
|
||||
.colored(PonderPalette.RED)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 2, 3), Direction.NORTH));
|
||||
scene.idle(10);
|
||||
|
@ -339,6 +341,7 @@ public class KineticsScenes {
|
|||
.colored(PonderPalette.GREEN)
|
||||
.pointAt(util.vector.topOf(3, 2, 3))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("A gearbox is the more compact equivalent of this setup");
|
||||
|
||||
scene.idle(90);
|
||||
|
@ -411,6 +414,7 @@ public class KineticsScenes {
|
|||
scene.overlay.showText(50)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("When powered by Redstone, it breaks the connection")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(clutch));
|
||||
|
||||
|
@ -456,6 +460,7 @@ public class KineticsScenes {
|
|||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.text("When powered by Redstone, it reverses the transmission")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.topOf(gearshift));
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
|
@ -503,6 +508,7 @@ public class KineticsScenes {
|
|||
|
||||
scene.overlay.showText(50)
|
||||
.text("Scrolling on the back panel changes the RPM of the motors' rotational output")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(blockSurface);
|
||||
scene.idle(10);
|
||||
|
@ -574,6 +580,7 @@ public class KineticsScenes {
|
|||
scene.rotateCameraY(-30);
|
||||
scene.overlay.showText(70)
|
||||
.text("The Wheels' blades should be oriented against the flow")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(wheel));
|
||||
scene.idle(80);
|
||||
|
@ -599,6 +606,7 @@ public class KineticsScenes {
|
|||
scene.overlay.showText(70)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Facing the opposite way, they will not be as effective")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(wheel));
|
||||
scene.idle(80);
|
||||
|
@ -674,6 +682,7 @@ public class KineticsScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(50)
|
||||
.text("Hold Right-Click to rotate it Counter-Clockwise")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(centerOf);
|
||||
scene.idle(70);
|
||||
|
@ -697,6 +706,7 @@ public class KineticsScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showText(90)
|
||||
.text("Sneak and Hold Right-Click to rotate it Clockwise")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(centerOf);
|
||||
scene.idle(90);
|
||||
|
|
|
@ -49,6 +49,7 @@ public class MovementActorScenes {
|
|||
.pointAt(util.vector.topOf(bearing.up(2)))
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Inventories on moving contraptions cannot be accessed by players.");
|
||||
|
||||
scene.idle(70);
|
||||
|
@ -61,6 +62,7 @@ public class MovementActorScenes {
|
|||
.pointAt(util.vector.topOf(psi))
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("This component can interact with storage without the need to stop the contraption.");
|
||||
scene.idle(90);
|
||||
|
||||
|
@ -69,6 +71,7 @@ public class MovementActorScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(psi.west()), 50)
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Place a second one with a gap of 1 or 2 blocks inbetween");
|
||||
scene.idle(55);
|
||||
|
||||
|
@ -97,6 +100,7 @@ public class MovementActorScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(psi2), 70)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.attachKeyFrame()
|
||||
.text("While engaged, the stationary interface will represent ALL inventories on the contraption");
|
||||
|
||||
scene.idle(80);
|
||||
|
@ -106,6 +110,7 @@ public class MovementActorScenes {
|
|||
scene.overlay.showText(70)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(hopper))
|
||||
.attachKeyFrame()
|
||||
.text("Items can now be inserted...");
|
||||
|
||||
ItemStack itemStack = AllItems.COPPER_INGOT.asStack();
|
||||
|
|
|
@ -58,6 +58,7 @@ public class PistonScenes {
|
|||
scene.overlay.showText(55)
|
||||
.pointAt(util.vector.topOf(piston))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Mechanical Pistons can move blocks in front of them");
|
||||
scene.idle(65);
|
||||
|
||||
|
@ -93,6 +94,7 @@ public class PistonScenes {
|
|||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.topOf(piston))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Sticky Mechanical Pistons can pull the attached blocks back");
|
||||
scene.idle(20);
|
||||
scene.world.setBlock(util.grid.at(2, 1, 1), Blocks.OAK_PLANKS.getDefaultState(), false);
|
||||
|
@ -108,6 +110,7 @@ public class PistonScenes {
|
|||
ElementLink<WorldSectionElement> chassis =
|
||||
scene.world.showIndependentSection(util.select.fromTo(2, 2, 0, 2, 3, 2), Direction.DOWN);
|
||||
scene.world.moveSection(chassis, util.vector.of(0, -1, 1), 0);
|
||||
scene.addKeyframe();
|
||||
scene.idle(5);
|
||||
scene.world.showSectionAndMerge(util.select.position(1, 2, 0), Direction.EAST, chassis);
|
||||
scene.idle(15);
|
||||
|
@ -154,6 +157,7 @@ public class PistonScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.position(piston), 50)
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Without attached Poles, a Mechanical Piston cannot move");
|
||||
scene.idle(60);
|
||||
|
||||
|
@ -172,6 +176,7 @@ public class PistonScenes {
|
|||
100);
|
||||
scene.overlay.showSelectionWithText(util.select.fromTo(piston.west(), piston.west(2)), 100)
|
||||
.text("The Length of pole added at its back determines the Extension Range")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN);
|
||||
scene.idle(110);
|
||||
|
@ -238,6 +243,7 @@ public class PistonScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showSelectionWithText(rose, 70)
|
||||
.text("Whenever Pistons stop moving, the moved structure reverts to blocks")
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.RED);
|
||||
scene.idle(80);
|
||||
|
||||
|
@ -259,6 +265,7 @@ public class PistonScenes {
|
|||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.topOf(piston))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("behaviour_modify_wrench");
|
||||
scene.idle(80);
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ public class PulleyScenes {
|
|||
scene.idle(45);
|
||||
scene.overlay.showText(60)
|
||||
.pointAt(util.vector.blockSurface(pulleyPos, Direction.WEST))
|
||||
.attachKeyFrame()
|
||||
.text("Rope Pulleys can move blocks vertically when given Rotational Force")
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
@ -81,6 +82,7 @@ public class PulleyScenes {
|
|||
scene.overlay.showText(80)
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 2, 2), Direction.NORTH))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("movement_anchors");
|
||||
scene.idle(90);
|
||||
|
||||
|
@ -136,6 +138,7 @@ public class PulleyScenes {
|
|||
scene.idle(10);
|
||||
scene.overlay.showSelectionWithText(util.select.position(flowerPos), 70)
|
||||
.text("Whenever Pulleys stop moving, the moved structure reverts to blocks")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.RED);
|
||||
scene.idle(80);
|
||||
|
@ -157,6 +160,7 @@ public class PulleyScenes {
|
|||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.topOf(pulleyPos))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.sharedText("behaviour_modify_wrench");
|
||||
scene.idle(80);
|
||||
|
||||
|
@ -202,6 +206,7 @@ public class PulleyScenes {
|
|||
scene.overlay.showText(50)
|
||||
.pointAt(util.vector.blockSurface(pulleyPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Whenever Pulleys are themselves being moved by a Contraption...");
|
||||
scene.idle(60);
|
||||
|
||||
|
@ -215,6 +220,7 @@ public class PulleyScenes {
|
|||
scene.overlay.showSelectionWithText(util.select.fromTo(1, 1, 1, 1, 1, 2), 50)
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("...its attached structure will be dragged with it");
|
||||
scene.idle(60);
|
||||
scene.overlay.showText(80)
|
||||
|
|
Loading…
Reference in a new issue