Red light green light

- Fixed trains not properly pathfinding to stations with an opposing
signal just behind the destination
- Chain Drives can now be crafted from zinc nuggets
- Fixed address suggestions not reacting to scroll wheel in some HL screens
- Fixed stations voiding schedules when disassembling the train
- Fixed lighting on signal block indicators
This commit is contained in:
simibubi 2025-02-07 11:11:12 +01:00
parent 75fd5a2a26
commit 688a07b314
14 changed files with 94 additions and 12 deletions

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-02-05T10:52:51.2144787 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
// 1.20.1 2025-02-07T11:08:37.2051351 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json
6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json
c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json
@ -4710,7 +4710,7 @@ f02fc9781e8f0ae33ed3b98cf4f46ba6927c7ff8 data/create/tags/blocks/sugar_cane_vari
1b6977d9a399cf6ee042e3f8f5e64e4d3cda5489 data/create/tags/blocks/tree_attachments.json
da739ad2160e7df4e0e5cc89587670ce5e9450c3 data/create/tags/blocks/valve_handles.json
72143286fb5cb372a0696550e2eac76ca50e6fbc data/create/tags/blocks/windmill_sails.json
30a54ad8eb06f2335705f5f01d12085ab4841dff data/create/tags/blocks/wrench_pickup.json
a109dab3eeeae64b2eb909ae1b5027716c5dd271 data/create/tags/blocks/wrench_pickup.json
76c0522664726c09461ad4565b6fba80b4f816b2 data/create/tags/entity_types/blaze_burner_capturable.json
35133e95f1c8fdd7a1c21afcc231fc0bffefb9a8 data/create/tags/entity_types/ignore_seat.json
894e1e4fd1e32712abdda18ec64ab13750d3c039 data/create/tags/fluids/bottomless/allow.json

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-02-02T11:59:39.5980858 Create's Standard Recipes
// 1.20.1 2025-02-07T11:08:37.2861078 Create's Standard Recipes
a8cc4af26f6c7c45a9eef12e92af1452fe042454 data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank.json
2c2639c7b307ee7c7a4e97e5efebf496788998ad data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank_from_netherite.json
81dcf0cb1aa99e39bc7d1a386e07cad4cee7d8b9 data/create/advancements/recipes/combat/crafting/appliances/netherite_diving_boots.json
@ -88,6 +88,7 @@ a85aecdec18802b97c23cf21f57e59bf71bfe690 data/create/advancements/recipes/misc/c
5eddf6af005751b5628d8bc032d064861c7070e0 data/create/advancements/recipes/misc/crafting/kinetics/elevator_pulley.json
df55f1a1e16f8a1771b617acfeb22cb5991dbab0 data/create/advancements/recipes/misc/crafting/kinetics/empty_blaze_burner.json
b0ec44a665cfcc180f5f6a534ef963f431f252d1 data/create/advancements/recipes/misc/crafting/kinetics/encased_chain_drive.json
dc29c1449cecf840e3c2db0f56884950cad7543c data/create/advancements/recipes/misc/crafting/kinetics/encased_chain_drive_from_zinc.json
82d47f9b54917def4ed1a73b4d90d98071d30341 data/create/advancements/recipes/misc/crafting/kinetics/encased_fan.json
aae73187c99468804f57403864846116745d04a0 data/create/advancements/recipes/misc/crafting/kinetics/filter.json
8b85fc7d791aafac0b330d2a7820c71f80257cce data/create/advancements/recipes/misc/crafting/kinetics/fluid_pipe.json
@ -366,6 +367,7 @@ d26d0a2f3836bdc92f9c43913acac2a93d713976 data/create/recipes/crafting/kinetics/d
03bf164f5332018731ac6b216b4f50baed3211bd data/create/recipes/crafting/kinetics/elevator_pulley.json
59278e0e0e75eb1c0f926bc90e19edfda5993261 data/create/recipes/crafting/kinetics/empty_blaze_burner.json
ca3e3063cdf135426e28d3474b5289ba1c5d9a1d data/create/recipes/crafting/kinetics/encased_chain_drive.json
1b470cc502f95473da205218bcf7ea1a2354ded2 data/create/recipes/crafting/kinetics/encased_chain_drive_from_zinc.json
7bb683f2398124b62595d6aa0afbdcde80acc028 data/create/recipes/crafting/kinetics/encased_fan.json
6c3a8f04e52a82c675c76963701244c78553cd32 data/create/recipes/crafting/kinetics/filter.json
871fae440820ae1145a86fe2d14a191b81bcd85f data/create/recipes/crafting/kinetics/fluid_pipe.json

View file

@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"create:andesite_casing"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "create:crafting/kinetics/encased_chain_drive_from_zinc"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"create:crafting/kinetics/encased_chain_drive_from_zinc"
]
},
"sends_telemetry_event": false
}

View file

@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "create:andesite_casing"
},
{
"tag": "forge:nuggets/zinc"
},
{
"tag": "forge:nuggets/zinc"
},
{
"tag": "forge:nuggets/zinc"
}
],
"result": {
"item": "create:encased_chain_drive"
}
}

View file

@ -9,6 +9,7 @@
"minecraft:redstone_torch",
"minecraft:repeater",
"minecraft:lever",
"minecraft:redstone_lamp",
"minecraft:comparator",
"minecraft:observer",
"minecraft:redstone_wall_torch",

View file

@ -591,6 +591,9 @@ public class FactoryPanelScreen extends AbstractSimiScreen {
public boolean mouseScrolled(double mouseX, double mouseY, double pDelta) {
int x = guiLeft;
int y = guiTop;
if (addressBox.mouseScrolled(mouseX, mouseY, pDelta))
return true;
if (craftingActive)
return super.mouseScrolled(mouseX, mouseY, pDelta);

View file

@ -77,6 +77,13 @@ public class PackageFilterScreen extends AbstractFilterScreen<PackageFilterMenu>
public boolean mouseClicked(double pMouseX, double pMouseY, int pButton) {
return super.mouseClicked(pMouseX, pMouseY, pButton);
}
@Override
public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
if (addressBox.mouseScrolled(mouseX, mouseY, delta))
return true;
return super.mouseScrolled(mouseX, mouseY, delta);
}
@Override
public boolean keyPressed(int pKeyCode, int pScanCode, int pModifiers) {

View file

@ -95,6 +95,8 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
return InteractionResult.PASS;
if (AllBlocks.STOCK_LINK.isIn(itemInHand) && !state.getValue(LINKED))
return InteractionResult.PASS;
if (AllBlocks.PACKAGE_FROGPORT.isIn(itemInHand))
return InteractionResult.PASS;
if (onBlockEntityUse(worldIn, pos, be -> {
if (be.heldBox.isEmpty()) {

View file

@ -178,6 +178,9 @@ public class RedstoneRequesterScreen extends AbstractSimiContainerScreen<Redston
int x = getGuiLeft();
int y = getGuiTop();
if (addressBox.mouseScrolled(mouseX, mouseY, pDelta))
return true;
for (int i = 0; i < amounts.size(); i++) {
int inputX = x + 27 + i * 20;
int inputY = y + 28;

View file

@ -749,7 +749,7 @@ public class Navigation {
if (station.canApproachFrom(newNode) && stationTest.test(newDistance, newDistance + newPenalty, reachedVia,
Pair.of(Couple.create(node2, newNode), newEdge), station)) {
hasDestination = true;
continue;
break;
}
if (!isOwnStation)
newPenalty += Train.Penalties.STATION;

View file

@ -12,6 +12,7 @@ import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRender
import dev.engine_room.flywheel.lib.transform.TransformStack;
import net.createmod.catnip.animation.AnimationTickHolder;
import net.createmod.catnip.render.CachedBuffers;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
@ -34,6 +35,7 @@ public class SignalRenderer extends SafeBlockEntityRenderer<SignalBlockEntity> {
float renderTime = AnimationTickHolder.getRenderTime(be.getLevel());
if (signalState.isRedLight(renderTime))
CachedBuffers.partial(AllPartialModels.SIGNAL_ON, blockState)
.light(LightTexture.FULL_BLOCK)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
else
CachedBuffers.partial(AllPartialModels.SIGNAL_OFF, blockState)

View file

@ -425,7 +425,7 @@ public class StationBlockEntity extends SmartBlockEntity implements ITransformab
if (!train.disassemble(getAssemblyDirection(), trackPosition.above()))
return false;
dropSchedule(sender);
dropSchedule(sender, train);
return true;
}
@ -456,12 +456,10 @@ public class StationBlockEntity extends SmartBlockEntity implements ITransformab
return true;
}
public void dropSchedule(@Nullable ServerPlayer sender) {
public void dropSchedule(@Nullable ServerPlayer sender, @Nullable Train train) {
GlobalStation station = getStation();
if (station == null)
return;
Train train = station.getPresentTrain();
if (train == null)
return;

View file

@ -92,9 +92,12 @@ public class StationEditPacket extends BlockEntityConfigurationPacket<StationBlo
Level level = be.getLevel();
BlockPos blockPos = be.getBlockPos();
BlockState blockState = level.getBlockState(blockPos);
GlobalStation station = be.getStation();
if (dropSchedule) {
be.dropSchedule(player);
if (station == null)
return;
be.dropSchedule(player, station.getPresentTrain());
return;
}
@ -115,8 +118,7 @@ public class StationEditPacket extends BlockEntityConfigurationPacket<StationBlo
return;
if (tryAssemble) {
be.assemble(player.getUUID());
assemblyComplete = be.getStation() != null && be.getStation()
.getPresentTrain() != null;
assemblyComplete = station != null && station.getPresentTrain() != null;
} else {
if (be.tryDisassembleTrain(player) && be.tryEnterAssemblyMode())
be.refreshAssemblyInfo();

View file

@ -858,6 +858,12 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.requires(I.ironNugget())
.requires(I.ironNugget())
.requires(I.ironNugget())),
ENCASED_CHAIN_DRIVE_ZINC = create(AllBlocks.ENCASED_CHAIN_DRIVE).withSuffix("_from_zinc").unlockedBy(I::andesiteCasing)
.viaShapeless(b -> b.requires(I.andesiteCasing())
.requires(I.zincNugget())
.requires(I.zincNugget())
.requires(I.zincNugget())),
FLYWHEEL = create(AllBlocks.FLYWHEEL).unlockedByTag(I::brass)
.viaShaped(b -> b.define('C', I.brass())