Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First work on getting block entities in
- Loading branch information
Showing
54 changed files
with
487 additions
and
913 deletions.
There are no files selected for viewing
19 changes: 19 additions & 0 deletions
19
src/generated/resources/assets/furenikusroads/blockstates/crusher.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"variants": { | ||
"facing=east": { | ||
"model": "furenikusroads:block/crusher", | ||
"y": 90 | ||
}, | ||
"facing=north": { | ||
"model": "furenikusroads:block/crusher" | ||
}, | ||
"facing=south": { | ||
"model": "furenikusroads:block/crusher", | ||
"y": 180 | ||
}, | ||
"facing=west": { | ||
"model": "furenikusroads:block/crusher", | ||
"y": 270 | ||
} | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
src/generated/resources/assets/furenikusroads/blockstates/fabricator.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"variants": { | ||
"facing=east": { | ||
"model": "furenikusroads:block/fabricator", | ||
"y": 90 | ||
}, | ||
"facing=north": { | ||
"model": "furenikusroads:block/fabricator" | ||
}, | ||
"facing=south": { | ||
"model": "furenikusroads:block/fabricator", | ||
"y": 180 | ||
}, | ||
"facing=west": { | ||
"model": "furenikusroads:block/fabricator", | ||
"y": 270 | ||
} | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
src/generated/resources/assets/furenikusroads/models/block/crusher.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"parent": "furenikusroads:blocks/machine/crusher", | ||
"textures": { | ||
"texture": "furenikusroads:block/machine/crusher" | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
src/generated/resources/assets/furenikusroads/models/block/fabricator.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"parent": "furenikusroads:blocks/machine/fabricator", | ||
"textures": { | ||
"texture": "furenikusroads:block/machine/fabricator" | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
src/generated/resources/assets/furenikusroads/models/item/crusher.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"parent": "furenikusroads:block/crusher" | ||
} |
3 changes: 3 additions & 0 deletions
3
src/generated/resources/assets/furenikusroads/models/item/fabricator.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"parent": "furenikusroads:block/fabricator" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
32 changes: 32 additions & 0 deletions
32
src/main/java/com/fureniku/roads/blockentities/BlockEntityFactoryManager.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.fureniku.roads.blockentities; | ||
|
||
import com.fureniku.metropolis.blocks.decorative.MetroBlockDecorativeBase; | ||
import com.fureniku.metropolis.blocks.decorative.helpers.HelperBase; | ||
import com.fureniku.metropolis.blocks.decorative.helpers.OffsetHelper; | ||
import com.fureniku.metropolis.utils.SimpleUtils; | ||
import com.fureniku.roads.blocks.entityblock.CrusherEntityBlock; | ||
import com.fureniku.roads.blocks.entityblock.FabricatorEntityBlock; | ||
|
||
import java.util.ArrayList; | ||
import java.util.Arrays; | ||
|
||
public class BlockEntityFactoryManager { | ||
|
||
public static MetroBlockDecorativeBase.MetroBlockStateFactory getCrusherBlockFactory(HelperBase... helpersIn) { | ||
return (props, shape, modelDir, modelName, tag, dynamicShape, textures) -> new CrusherEntityBlock(props, shape, modelDir, modelName, tag, SimpleUtils.containsType(OffsetHelper.class, helpersIn), textures) { | ||
@Override | ||
public ArrayList<HelperBase> getHelpers() { | ||
return new ArrayList<>(Arrays.asList(helpersIn)); | ||
} | ||
}; | ||
} | ||
|
||
public static MetroBlockDecorativeBase.MetroBlockStateFactory getFabricatorBlockFactory(HelperBase... helpersIn) { | ||
return (props, shape, modelDir, modelName, tag, dynamicShape, textures) -> new FabricatorEntityBlock(props, shape, modelDir, modelName, tag, SimpleUtils.containsType(OffsetHelper.class, helpersIn), textures) { | ||
@Override | ||
public ArrayList<HelperBase> getHelpers() { | ||
return new ArrayList<>(Arrays.asList(helpersIn)); | ||
} | ||
}; | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
src/main/java/com/fureniku/roads/blockentities/CrusherBlockEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.fureniku.roads.blockentities; | ||
|
||
import com.fureniku.metropolis.blockentity.MetroBlockEntity; | ||
import com.fureniku.metropolis.utils.Debug; | ||
import com.fureniku.roads.FurenikusRoads; | ||
import net.minecraft.core.BlockPos; | ||
import net.minecraft.world.level.block.state.BlockState; | ||
|
||
public class CrusherBlockEntity extends MetroBlockEntity { | ||
|
||
public CrusherBlockEntity(BlockPos pos, BlockState state) { | ||
super(FurenikusRoads.INSTANCE.registration._registrationMachines.getCrusherEntity().get(), pos, state); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
src/main/java/com/fureniku/roads/blockentities/FabricatorBlockEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.fureniku.roads.blockentities; | ||
|
||
import com.fureniku.metropolis.blockentity.MetroBlockEntity; | ||
import com.fureniku.roads.FurenikusRoads; | ||
import net.minecraft.core.BlockPos; | ||
import net.minecraft.world.level.block.state.BlockState; | ||
|
||
public class FabricatorBlockEntity extends MetroBlockEntity { | ||
|
||
public FabricatorBlockEntity(BlockPos pos, BlockState state) { | ||
super(FurenikusRoads.INSTANCE.registration._registrationMachines.getFabricatorEntity().get(), pos, state); | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/com/fureniku/roads/blocks/entityblock/CrusherEntityBlock.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.fureniku.roads.blocks.entityblock; | ||
|
||
import com.fureniku.metropolis.blocks.decorative.MetroEntityBlockDecorative; | ||
import com.fureniku.metropolis.datagen.TextureSet; | ||
import com.fureniku.roads.blockentities.CrusherBlockEntity; | ||
import net.minecraft.core.BlockPos; | ||
import net.minecraft.world.level.block.entity.BlockEntity; | ||
import net.minecraft.world.level.block.state.BlockState; | ||
import net.minecraft.world.phys.shapes.VoxelShape; | ||
import org.jetbrains.annotations.Nullable; | ||
|
||
public abstract class CrusherEntityBlock extends MetroEntityBlockDecorative { | ||
|
||
public CrusherEntityBlock(Properties props, VoxelShape shape, String modelDir, String modelName, String tag, boolean dynamicShape, TextureSet... textures) { | ||
super(props, shape, modelDir, modelName, tag, dynamicShape, textures); | ||
} | ||
|
||
@Override | ||
@Nullable | ||
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { | ||
return new CrusherBlockEntity(pos, state); | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/com/fureniku/roads/blocks/entityblock/FabricatorEntityBlock.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.fureniku.roads.blocks.entityblock; | ||
|
||
import com.fureniku.metropolis.blocks.decorative.MetroEntityBlockDecorative; | ||
import com.fureniku.metropolis.datagen.TextureSet; | ||
import com.fureniku.roads.blockentities.FabricatorBlockEntity; | ||
import net.minecraft.core.BlockPos; | ||
import net.minecraft.world.level.block.entity.BlockEntity; | ||
import net.minecraft.world.level.block.state.BlockState; | ||
import net.minecraft.world.phys.shapes.VoxelShape; | ||
import org.jetbrains.annotations.Nullable; | ||
|
||
public abstract class FabricatorEntityBlock extends MetroEntityBlockDecorative { | ||
|
||
public FabricatorEntityBlock(Properties props, VoxelShape shape, String modelDir, String modelName, String tag, boolean dynamicShape, TextureSet... textures) { | ||
super(props, shape, modelDir, modelName, tag, dynamicShape, textures); | ||
} | ||
|
||
@Nullable | ||
@Override | ||
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { | ||
return new FabricatorBlockEntity(pos, state); | ||
} | ||
} |
96 changes: 96 additions & 0 deletions
96
src/main/java/com/fureniku/roads/registrations/RegistrationMachines.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
package com.fureniku.roads.registrations; | ||
|
||
import com.fureniku.metropolis.RegistrationBase; | ||
import com.fureniku.metropolis.RegistrationGroup; | ||
import com.fureniku.metropolis.blockentity.MetroBlockEntity; | ||
import com.fureniku.metropolis.blocks.decorative.builders.MetroBlockDecorativeBuilder; | ||
import com.fureniku.metropolis.blocks.decorative.helpers.HelperBase; | ||
import com.fureniku.metropolis.blocks.decorative.helpers.RotationHelper; | ||
import com.fureniku.metropolis.utils.CreativeTabSet; | ||
import com.fureniku.metropolis.utils.Debug; | ||
import com.fureniku.metropolis.utils.ShapeUtils; | ||
import com.fureniku.roads.FurenikusRoads; | ||
import com.fureniku.roads.blockentities.BlockEntityFactoryManager; | ||
import com.fureniku.roads.blockentities.CrusherBlockEntity; | ||
import com.fureniku.roads.blockentities.FabricatorBlockEntity; | ||
import com.fureniku.roads.blocks.entityblock.CrusherEntityBlock; | ||
import com.fureniku.roads.blocks.entityblock.FabricatorEntityBlock; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.world.level.block.SoundType; | ||
import net.minecraft.world.level.block.entity.BlockEntityType; | ||
import net.minecraft.world.level.block.state.BlockBehaviour; | ||
import net.neoforged.bus.api.IEventBus; | ||
import net.neoforged.neoforge.registries.RegistryObject; | ||
|
||
import java.util.ArrayList; | ||
|
||
public class RegistrationMachines extends RegistrationGroup { | ||
|
||
private final String CRUSHER = "crusher"; | ||
private final String FABRICATOR = "fabricator"; | ||
private final String PAINT_FILLER = "paint_filler"; | ||
private final String PAINT_OVEN = "paint_oven"; | ||
private final String ROAD_FACTORY = "road_factory"; | ||
private final String TAR_DISTILLER = "tar_distiller"; | ||
private final String TARMAC_CUTTER = "tarmac_cutter"; | ||
|
||
private RegistryObject<BlockEntityType<MetroBlockEntity>> CRUSHER_ENTITY; | ||
private RegistryObject<BlockEntityType<MetroBlockEntity>> FABRICATOR_ENTITY; | ||
|
||
private CreativeTabSet _machineTab; | ||
|
||
private BlockBehaviour.Properties _props = BlockBehaviour.Properties.of().strength(1.0f).sound(SoundType.METAL); | ||
|
||
|
||
public RegistrationMachines(RegistrationBase registrationBase) { | ||
super(registrationBase); | ||
} | ||
|
||
@Override | ||
public void init(IEventBus iEventBus) { | ||
Debug.Log("Initialize machines"); | ||
|
||
RotationHelper crusherRotationHelper = new RotationHelper(ShapeUtils.makeShape(12, 14)); | ||
RotationHelper fabricatorRotationHelper = new RotationHelper(ShapeUtils.makeShape(12, 9.5f)); | ||
|
||
CRUSHER_ENTITY = registration.registerBlockEntityWithBlock(CRUSHER, () -> new MetroBlockDecorativeBuilder<CrusherEntityBlock>(_props) | ||
.setModelDirectory("blocks/machine/") | ||
.setModelName("crusher") | ||
.setTextures(getLoc("crusher")) | ||
.setHelpers(crusherRotationHelper).buildAs(BlockEntityFactoryManager.getCrusherBlockFactory(crusherRotationHelper)), CrusherBlockEntity::new); | ||
|
||
FABRICATOR_ENTITY = registration.registerBlockEntityWithBlock(FABRICATOR, () -> new MetroBlockDecorativeBuilder<FabricatorEntityBlock>(_props) | ||
.setModelDirectory("blocks/machine/") | ||
.setModelName("fabricator") | ||
.setTextures(getLoc("fabricator")) | ||
.setHelpers(fabricatorRotationHelper).buildAs(BlockEntityFactoryManager.getFabricatorBlockFactory(fabricatorRotationHelper)), FabricatorBlockEntity::new); | ||
|
||
_machineTab = new CreativeTabSet(registration.getCreativeTabDeferredRegister(),"tab_machines", getItem(CRUSHER)); | ||
} | ||
|
||
public RegistryObject<BlockEntityType<MetroBlockEntity>> getCrusherEntity() { | ||
return CRUSHER_ENTITY; | ||
} | ||
|
||
public RegistryObject<BlockEntityType<MetroBlockEntity>> getFabricatorEntity() { | ||
return FABRICATOR_ENTITY; | ||
} | ||
|
||
@Override | ||
public void generateCreativeTabs() { | ||
_machineTab.addItem(getItem(CRUSHER).get().getDefaultInstance()); | ||
_machineTab.addItem(getItem(FABRICATOR).get().getDefaultInstance()); | ||
} | ||
|
||
@Override | ||
public ArrayList<CreativeTabSet> getCreativeTabs() { | ||
ArrayList<CreativeTabSet> tabList = new ArrayList<CreativeTabSet>(); | ||
tabList.add(_machineTab); | ||
return tabList; | ||
} | ||
|
||
@Override | ||
protected ResourceLocation getLoc(String name) { | ||
return new ResourceLocation(FurenikusRoads.MODID, "block/machine/" + name); | ||
} | ||
} |
55 changes: 0 additions & 55 deletions
55
...ces/assets/furenikusroads/models/blocks/decorative/1.12 import/base_plate_fabricator.json
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.