diff --git a/src/documentation/Development b/src/documentation/Development index cbe7d8c..32dc014 100644 --- a/src/documentation/Development +++ b/src/documentation/Development @@ -13,9 +13,11 @@ Valkyrien Skies Mod (Fügt Schiffe + Flugzeuge hinzu): (1.19.2 + Fabric, aber Ideen für Features: - Suspicous Block: Entsteht wenn wasser auf honig trifft (wie Cobblestone aus Wasser und Lava): hat 8 Level, jedes Level kann mit einer Schale eingesammelt werden und gibt ein zufälliges suspicous stew. Sinn: Für eine Bar o.ä. + - Grid-Block: Blöcke in diversen Formen. Wenn man mit einem Block rechtsklick macht, nimmt der Grid-Block die entsprechende Textur an. Mit einem neuen Werkzeug dem Hammer kann man mit rechtsklick die Textur wieder entfernen, mit linksklick den ganzen Block abbauen. Sinn: Mehr baumöglichkeiten, und wenn man z.B. Deko-Blätter platziert baut man die nicht mehr ausversehen ab. + - Schiffe: Man baut ein Schiff aus Blöcken, setzt einen Steuerrad drauf und man kann damit über die Meere fahren (Blöcke sollten weiterhin abbaubar und platzierbar sein, damit man epische Seeschlachten mit den Söldnern machen kann) Es sollte eine maximale Anzahl Blöcke geben (Server Ressourcen schonen) die erhöht werden kann mit einem entsprechenden weiteren Block. diff --git a/src/main/java/modchest/block/custom/gridBlock.java b/src/main/java/modchest/block/custom/gridBlock.java new file mode 100644 index 0000000..1a78c7d --- /dev/null +++ b/src/main/java/modchest/block/custom/gridBlock.java @@ -0,0 +1,76 @@ +package modchest.block.custom; + +import org.jetbrains.annotations.Nullable; + +import modchest.block.entity.gridBlockEntity; +import modchest.block.entity.modBlockEntities; +import modchest.block.entity.steeringWheelEntity; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockRenderType; +import net.minecraft.block.BlockState; +import net.minecraft.block.BlockWithEntity; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityTicker; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.NamedScreenHandlerFactory; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class gridBlock extends BlockWithEntity implements BlockEntityProvider { + public gridBlock(Settings settings) { + super(settings); + } + + + @Override + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + + + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new gridBlockEntity (pos, state); + } + + + + +// bei Rechtsklick mit anderem Block in der Hand überprüfen ob Block (außer mit Werkzeug) +//Texture von Block in Hand holen -> Texture von Grid Block zu dieser Textur setzen + + + + +/**UseBlockCallback.EVENT(); + + private boolean isBlock(){ + + + + if (player.Block==Block) { + return true; + } else { + return false; + } +} + +public void changeTexture(){ + + if (isBlock()==true) { + + Block.getTexture; + gridBlockBlock.setTexture; + } +}**/ +} + + + diff --git a/src/main/java/modchest/block/entity/gridBlockEntity.java b/src/main/java/modchest/block/entity/gridBlockEntity.java new file mode 100644 index 0000000..61f7807 --- /dev/null +++ b/src/main/java/modchest/block/entity/gridBlockEntity.java @@ -0,0 +1,67 @@ +package modchest.block.entity; + +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.NamedScreenHandlerFactory; +import net.minecraft.screen.PropertyDelegate; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.text.Text; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.math.BlockPos; + + +public class gridBlockEntity extends BlockEntity implements NamedScreenHandlerFactory, ImplementedInventory { + + public final PropertyDelegate propertyDelegate; + + private final DefaultedList inventory = DefaultedList.ofSize(3, ItemStack.EMPTY); + + + +public gridBlockEntity(BlockPos pos, BlockState state){ + super (modBlockEntities.grid_block_interface, pos, state); + this.propertyDelegate = new PropertyDelegate() { + @Override + public int get(int index) { + return 0; + } + + @Override + public void set(int index, int value) { + + } + + @Override + public int size() { + return 0; + } + }; +} + + +public void registerBlockEntities2(){} + + + +@Override +public ScreenHandler createMenu(int syncId, PlayerInventory inv, PlayerEntity player) { + return null; +} + +@Override +public DefaultedList getItems() { + return this.inventory; +} + +@Override +public Text getDisplayName() { + return Text.literal("Grid Block"); + } //TODO: setzt den Namen. Muss noch an die einzelnen Sprachen angepasst werden! + + + + +} diff --git a/src/main/java/modchest/block/entity/modBlockEntities.java b/src/main/java/modchest/block/entity/modBlockEntities.java index 27f4323..dbc0844 100644 --- a/src/main/java/modchest/block/entity/modBlockEntities.java +++ b/src/main/java/modchest/block/entity/modBlockEntities.java @@ -16,4 +16,18 @@ public class modBlockEntities { new Identifier(REServerMod.MOD_ID, "steering_wheel_interface"), // Interkationsmenü wird gerendert FabricBlockEntityTypeBuilder.create(steeringWheelEntity::new, modBlocks.steering_wheel).build(null)); } + + + public static BlockEntityType grid_block_interface; + + public static void registerBlockEntities2() { + grid_block_interface = Registry.register(Registry.BLOCK_ENTITY_TYPE, + new Identifier(REServerMod.MOD_ID, "grid_block_interface"), + FabricBlockEntityTypeBuilder.create(gridBlockEntity::new, modBlocks.grid_block).build(null)); + } + + + + } + diff --git a/src/main/java/modchest/block/entity/steeringWheelEntity.java b/src/main/java/modchest/block/entity/steeringWheelEntity.java index fc89b33..e886e61 100644 --- a/src/main/java/modchest/block/entity/steeringWheelEntity.java +++ b/src/main/java/modchest/block/entity/steeringWheelEntity.java @@ -14,7 +14,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -//definiert das Interkationsmenü +//definiert das Interaktionsmenü public class steeringWheelEntity extends BlockEntity implements NamedScreenHandlerFactory, ImplementedInventory { diff --git a/src/main/java/modchest/block/modBlocks.java b/src/main/java/modchest/block/modBlocks.java index c31f7f3..2d6f5a8 100644 --- a/src/main/java/modchest/block/modBlocks.java +++ b/src/main/java/modchest/block/modBlocks.java @@ -1,5 +1,6 @@ package modchest.block; +import modchest.block.custom.gridBlock; import modchest.block.custom.steeringWheelBlock; import modchest.item.modItemGroup; import modchest.REServerMod; @@ -15,14 +16,22 @@ import net.minecraft.util.registry.Registry; //setzt die blöcke auf public class modBlocks { public static Block steering_wheel; // Block wird erstellt + public static Block grid_block; public static void setBlocks() {// Block wird definiert steering_wheel = registerBlock("steering_wheel", new steeringWheelBlock(FabricBlockSettings.of(Material.WOOD).strength(1.0f).requiresTool()), modItemGroup.modchest); + grid_block = registerBlock("grid_block", + new gridBlock(FabricBlockSettings.of(Material.WOOD).strength(1.0f).requiresTool()), + modItemGroup.modchest); + } + + + private static Block registerBlock(String name, Block block, ItemGroup group) { // Nicht verändern! Fügt die oben // definierten Blöcke dem Register // hinzu diff --git a/src/main/resources/assets/modchest/blockstates/grid_block.json b/src/main/resources/assets/modchest/blockstates/grid_block.json new file mode 100644 index 0000000..de94be5 --- /dev/null +++ b/src/main/resources/assets/modchest/blockstates/grid_block.json @@ -0,0 +1,5 @@ +{ + "variants":{ + "": {"model": "modchest:block/grid_block"} + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modchest/lang/de_de.json b/src/main/resources/assets/modchest/lang/de_de.json index 0a9d8e2..5faed22 100644 --- a/src/main/resources/assets/modchest/lang/de_de.json +++ b/src/main/resources/assets/modchest/lang/de_de.json @@ -2,5 +2,7 @@ "item.modchest.shipblock": "Schiffsblock", "item.modchest.pirates_coin": "OP Piraten ding zum Testen", "block.modchest.steering_wheel": "Lenkrad", - "itemGroup.modchest.itemlist1": "Malte's Mod" + "itemGroup.modchest.itemlist1": "Malte's Mod", + "block.modchest.grid_block": "Grid Block" + } \ No newline at end of file diff --git a/src/main/resources/assets/modchest/lang/en_pt.json b/src/main/resources/assets/modchest/lang/en_pt.json index 1b36e5b..1c6d01e 100644 --- a/src/main/resources/assets/modchest/lang/en_pt.json +++ b/src/main/resources/assets/modchest/lang/en_pt.json @@ -2,5 +2,6 @@ "item.modchest.shipblock": "Hanno, änder die Sprache!", "item.modchest.pirates_coin": "Ya coin for tha pirrrrrates!", "block.modchest.steering_wheel": "Ne, du kriegst keine hilfreichen Angaben mit der Sprache!", - "itemGroup.modchest.itemlist1": "Änder doch endlich die Sprache..." -} \ No newline at end of file + "itemGroup.modchest.itemlist1": "Änder doch endlich die Sprache...", + "block.modchest.grid_block": "Grid Block" +} diff --git a/src/main/resources/assets/modchest/lang/en_us.json b/src/main/resources/assets/modchest/lang/en_us.json index 678dc00..beb2031 100644 --- a/src/main/resources/assets/modchest/lang/en_us.json +++ b/src/main/resources/assets/modchest/lang/en_us.json @@ -2,5 +2,6 @@ "item.modchest.shipblock": "Shipblock", "item.modchest.pirates_coin": "Pirate's Coin", "block.modchest.steering_wheel": "Steering Wheel", - "itemGroup.modchest.itemlist1": "Theo macht unfug" + "itemGroup.modchest.itemlist1": "Theo macht unfug", + "block.modchest.grid_block": "Grid Block" } \ No newline at end of file diff --git a/src/main/resources/assets/modchest/models/block/grid_block.json b/src/main/resources/assets/modchest/models/block/grid_block.json new file mode 100644 index 0000000..6789897 --- /dev/null +++ b/src/main/resources/assets/modchest/models/block/grid_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures":{ + "all": "modchest:block/grid_block_texture" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modchest/models/item/grid_block.json b/src/main/resources/assets/modchest/models/item/grid_block.json new file mode 100644 index 0000000..1022531 --- /dev/null +++ b/src/main/resources/assets/modchest/models/item/grid_block.json @@ -0,0 +1,3 @@ +{ + "parent":"modchest:block/grid_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/modchest/textures/block/grid_block_texture.png b/src/main/resources/assets/modchest/textures/block/grid_block_texture.png new file mode 100644 index 0000000..29bde2b Binary files /dev/null and b/src/main/resources/assets/modchest/textures/block/grid_block_texture.png differ