Skip to content

Commit c82686d

Browse files
authored
Fix #155: Default machine block properties are not applied in the builder (#156)
1 parent 8e1b127 commit c82686d

File tree

5 files changed

+59
-11
lines changed

5 files changed

+59
-11
lines changed

src/main/java/net/swedz/tesseract/neoforge/compat/mi/hack/HackedMachineRegistrationHelper.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.minecraft.world.level.block.Block;
3232
import net.minecraft.world.level.block.Blocks;
3333
import net.minecraft.world.level.block.entity.BlockEntityType;
34+
import net.minecraft.world.level.block.state.BlockBehaviour;
3435
import net.minecraft.world.level.block.state.BlockState;
3536
import net.minecraft.world.level.material.MapColor;
3637
import net.swedz.tesseract.neoforge.compat.mi.helper.MachineInventoryHelper;
@@ -107,12 +108,7 @@ public static Supplier<BlockEntityType<?>> registerMachine(MIHook hook,
107108
}
108109
else
109110
{
110-
properties
111-
.mapColor(MapColor.METAL)
112-
.destroyTime(4)
113-
.requiresCorrectToolForDrops()
114-
.isValidSpawn(MobSpawning.NO_SPAWN)
115-
.isRedstoneConductor(Blocks::never);
111+
applyDefaultMachineProperties(properties);
116112
}
117113
})
118114
.withModel((holder) -> (provider) ->
@@ -173,6 +169,16 @@ public static Supplier<BlockEntityType<?>> registerMachine(MIHook hook,
173169
return registerMachine(hook, englishName, name, null, null, null, factory, extraRegistrators);
174170
}
175171

172+
public static void applyDefaultMachineProperties(BlockBehaviour.Properties properties)
173+
{
174+
properties
175+
.mapColor(MapColor.METAL)
176+
.destroyTime(4)
177+
.requiresCorrectToolForDrops()
178+
.isValidSpawn(MobSpawning.NO_SPAWN)
179+
.isRedstoneConductor(Blocks::never);
180+
}
181+
176182
/**
177183
* @see MachineRegistrationHelper#addMachineModel(String, String, MachineCasing, boolean, boolean, boolean, boolean)
178184
*/

src/main/java/net/swedz/tesseract/neoforge/compat/mi/machine/builder/HatchMachineBuilder.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,14 @@ protected void internalRegister()
236236
holderModifiers.forEach((modifier) -> modifier.modify(holder));
237237
holderHatchModifiers.forEach((modifier) -> modifier.modify(holder, input));
238238
},
239-
(properties) -> propertiesModifiers.forEach((modifier) -> modifier.modify(properties)),
239+
(properties) ->
240+
{
241+
if(defaultBlockProperties)
242+
{
243+
HackedMachineRegistrationHelper.applyDefaultMachineProperties(properties);
244+
}
245+
propertiesModifiers.forEach((modifier) -> modifier.modify(properties));
246+
},
240247
defaultMineableTags,
241248
(bep) -> blockEntityFactory.create(bep, input, hook.id(machineId)),
242249
registrators.toArray(MachineBlockRegistrators[]::new)
@@ -258,7 +265,14 @@ protected void internalRegister()
258265
holderModifiers.forEach((modifier) -> modifier.modify(holder));
259266
holderHatchModifiers.forEach((modifier) -> modifier.modify(holder, false));
260267
},
261-
(properties) -> propertiesModifiers.forEach((modifier) -> modifier.modify(properties)),
268+
(properties) ->
269+
{
270+
if(defaultBlockProperties)
271+
{
272+
HackedMachineRegistrationHelper.applyDefaultMachineProperties(properties);
273+
}
274+
propertiesModifiers.forEach((modifier) -> modifier.modify(properties));
275+
},
262276
defaultMineableTags,
263277
(bep) -> blockEntityFactory.create(bep, false, hook.id(name)),
264278
registrators.toArray(MachineBlockRegistrators[]::new)

src/main/java/net/swedz/tesseract/neoforge/compat/mi/machine/builder/MachineBuilder.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public static HatchMachineBuilder hatch(MIHook hook,
4949
protected final List<MachineBlockPropertiesModifier> propertiesModifiers = Lists.newArrayList();
5050
protected final List<MachineBlockRegistrators> registrators = Lists.newArrayList();
5151

52+
protected boolean defaultBlockProperties = true;
5253
protected boolean defaultMineableTags = true;
5354
protected MachineBuiltinModelBuilder builtinModel;
5455

@@ -91,6 +92,12 @@ public T registrator(MachineBlockRegistrators registrator)
9192
return (T) this;
9293
}
9394

95+
public T excludeDefaultBlockProperties()
96+
{
97+
defaultBlockProperties = false;
98+
return (T) this;
99+
}
100+
94101
public T excludeDefaultMineableTags()
95102
{
96103
defaultMineableTags = false;

src/main/java/net/swedz/tesseract/neoforge/compat/mi/machine/builder/SingleBlockCraftingMachineBuilder.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,14 @@ protected void internalRegister()
146146
englishPrefix + englishName, id,
147147
blockFactory,
148148
(holder) -> holderModifiers.forEach((modifier) -> modifier.modify(holder)),
149-
(properties) -> propertiesModifiers.forEach((modifier) -> modifier.modify(properties)),
149+
(properties) ->
150+
{
151+
if(defaultBlockProperties)
152+
{
153+
HackedMachineRegistrationHelper.applyDefaultMachineProperties(properties);
154+
}
155+
propertiesModifiers.forEach((modifier) -> modifier.modify(properties));
156+
},
150157
defaultMineableTags,
151158
(bet) -> new SteamCraftingMachineBlockEntity(
152159
bet, recipeType,
@@ -190,7 +197,14 @@ protected void internalRegister()
190197
electricEnglishName, id,
191198
blockFactory,
192199
(holder) -> holderModifiers.forEach((modifier) -> modifier.modify(holder)),
193-
(properties) -> propertiesModifiers.forEach((modifier) -> modifier.modify(properties)),
200+
(properties) ->
201+
{
202+
if(defaultBlockProperties)
203+
{
204+
HackedMachineRegistrationHelper.applyDefaultMachineProperties(properties);
205+
}
206+
propertiesModifiers.forEach((modifier) -> modifier.modify(properties));
207+
},
194208
defaultMineableTags,
195209
(bet) -> new ElectricCraftingMachineBlockEntity(
196210
bet, recipeType,

src/main/java/net/swedz/tesseract/neoforge/compat/mi/machine/builder/SpecialMachineBuilder.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,14 @@ protected void internalRegister()
7878
englishName, name,
7979
blockFactory,
8080
(holder) -> holderModifiers.forEach((modifier) -> modifier.modify(holder)),
81-
(properties) -> propertiesModifiers.forEach((modifier) -> modifier.modify(properties)),
81+
(properties) ->
82+
{
83+
if(defaultBlockProperties)
84+
{
85+
HackedMachineRegistrationHelper.applyDefaultMachineProperties(properties);
86+
}
87+
propertiesModifiers.forEach((modifier) -> modifier.modify(properties));
88+
},
8289
defaultMineableTags,
8390
blockEntityFactory,
8491
registrators.toArray(MachineBlockRegistrators[]::new)

0 commit comments

Comments
 (0)