mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-26 15:06:42 +01:00
Add a few new ponder instructions (#4926)
- Additional method overloads for commonly used ponder instructions - Rotation indicator instructions can now be given custom display locations
This commit is contained in:
parent
2bcc12b096
commit
b7a082c408
1 changed files with 28 additions and 4 deletions
|
@ -296,7 +296,7 @@ public class SceneBuilder {
|
||||||
addInstruction(scene -> SuperGlueItem.spawnParticles(scene.getWorld(), pos, side, fullBlock));
|
addInstruction(scene -> SuperGlueItem.spawnParticles(scene.getWorld(), pos, side, fullBlock));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rotationIndicator(BlockPos pos, boolean direction) {
|
private void rotationIndicator(BlockPos pos, boolean direction, BlockPos displayPos) {
|
||||||
addInstruction(scene -> {
|
addInstruction(scene -> {
|
||||||
BlockState blockState = scene.getWorld()
|
BlockState blockState = scene.getWorld()
|
||||||
.getBlockState(pos);
|
.getBlockState(pos);
|
||||||
|
@ -318,7 +318,7 @@ public class SceneBuilder {
|
||||||
int particleSpeed = speedLevel.getParticleSpeed();
|
int particleSpeed = speedLevel.getParticleSpeed();
|
||||||
particleSpeed *= Math.signum(speed);
|
particleSpeed *= Math.signum(speed);
|
||||||
|
|
||||||
Vec3 location = VecHelper.getCenterOf(pos);
|
Vec3 location = VecHelper.getCenterOf(displayPos);
|
||||||
RotationIndicatorParticleData particleData = new RotationIndicatorParticleData(color, particleSpeed,
|
RotationIndicatorParticleData particleData = new RotationIndicatorParticleData(color, particleSpeed,
|
||||||
kb.getParticleInitialRadius(), kb.getParticleTargetRadius(), 20, rotationAxis.name()
|
kb.getParticleInitialRadius(), kb.getParticleTargetRadius(), 20, rotationAxis.name()
|
||||||
.charAt(0));
|
.charAt(0));
|
||||||
|
@ -330,11 +330,19 @@ public class SceneBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rotationSpeedIndicator(BlockPos pos) {
|
public void rotationSpeedIndicator(BlockPos pos) {
|
||||||
rotationIndicator(pos, false);
|
rotationIndicator(pos, false, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rotationDirectionIndicator(BlockPos pos) {
|
public void rotationDirectionIndicator(BlockPos pos) {
|
||||||
rotationIndicator(pos, true);
|
rotationIndicator(pos, true, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rotationSpeedIndicator(BlockPos pos, BlockPos displayPos) {
|
||||||
|
rotationIndicator(pos, false, displayPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rotationDirectionIndicator(BlockPos pos, BlockPos displayPos) {
|
||||||
|
rotationIndicator(pos, true, displayPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void indicateRedstone(BlockPos pos) {
|
public void indicateRedstone(BlockPos pos) {
|
||||||
|
@ -523,6 +531,13 @@ public class SceneBuilder {
|
||||||
return instruction.createLink(scene);
|
return instruction.createLink(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ElementLink<WorldSectionElement> showIndependentSection(Selection selection, Direction fadeInDirection, int duration) {
|
||||||
|
DisplayWorldSectionInstruction instruction =
|
||||||
|
new DisplayWorldSectionInstruction(duration, fadeInDirection, selection, Optional.empty());
|
||||||
|
addInstruction(instruction);
|
||||||
|
return instruction.createLink(scene);
|
||||||
|
}
|
||||||
|
|
||||||
public ElementLink<WorldSectionElement> showIndependentSectionImmediately(Selection selection) {
|
public ElementLink<WorldSectionElement> showIndependentSectionImmediately(Selection selection) {
|
||||||
DisplayWorldSectionInstruction instruction =
|
DisplayWorldSectionInstruction instruction =
|
||||||
new DisplayWorldSectionInstruction(0, Direction.DOWN, selection, Optional.empty());
|
new DisplayWorldSectionInstruction(0, Direction.DOWN, selection, Optional.empty());
|
||||||
|
@ -549,6 +564,15 @@ public class SceneBuilder {
|
||||||
addInstruction(new FadeOutOfSceneInstruction<>(15, fadeOutDirection, link));
|
addInstruction(new FadeOutOfSceneInstruction<>(15, fadeOutDirection, link));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void hideIndependentSection(ElementLink<WorldSectionElement> link, Direction fadeOutDirection, int duration) {
|
||||||
|
addInstruction(new FadeOutOfSceneInstruction<>(duration, fadeOutDirection, link));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hideIndependentSectionImmediately(ElementLink<WorldSectionElement> link) {
|
||||||
|
addInstruction(new FadeOutOfSceneInstruction<>(0, Direction.DOWN, link));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void restoreBlocks(Selection selection) {
|
public void restoreBlocks(Selection selection) {
|
||||||
addInstruction(scene -> scene.getWorld()
|
addInstruction(scene -> scene.getWorld()
|
||||||
.restoreBlocks(selection));
|
.restoreBlocks(selection));
|
||||||
|
|
Loading…
Reference in a new issue