diff --git a/20231021_Ver1.2/src/documentation/Development b/20231021_Ver1.2/src/documentation/Development index 2d40891..cbe7d8c 100644 --- a/20231021_Ver1.2/src/documentation/Development +++ b/20231021_Ver1.2/src/documentation/Development @@ -1,7 +1,7 @@ Nützliche Quellen: Mod Tutorial für 1.19.1 (Identisch zu 1.19.2): https://www.youtube.com/watch?v=2qtpxtw_zlM&list=PLKGarocXCE1EeLZggaXPJaARxnAbUD8Y_&index=23 -Fabric Datenbank mit sämtlichen Methoden, etc. (wenn man auf die richtigs subpage geht): +Fabric Datenbank mit sämtlichen Methoden, etc. (wenn man auf die richtige subpage geht): https://maven.fabricmc.net/docs/fabric-api-0.61.0+1.19.2/allclasses-index.html Archimedes ship mod code (Mod die Schiffe hinzufügt): (1.7.10, alt aber leichter verständlich) https://github.com/Ckathode/archimedes-ships/blob/master/src/main/java/ckathode/archimedes/entity/EntityShip.java @@ -23,7 +23,7 @@ Ideen für Features: (Holz hat 0.5, Wasser 1.0, braucht es sowieso für die Schwimmfähigkeit) kriegt man minus geschindigkeit und minus beschleunigung, damit man tatsächlich Schiffsdesign machen muss - Flugzeuge: Gleiche Mechanik wie Schiffe nur halt mit Fliegen -- Söldner: Man dropt Diamanten oder Emeralds -> sie werden zu Söldnern. Wenn man mit Ihnen Interagiert gibt +- Söldner: Man dropt Diamanten oder Emeralds an Villager -> sie werden zu Söldnern. Wenn man mit Ihnen Interagiert gibt es ein Auswahlmenü von fünf Verschiedenen Arten: o Schwertkämpfer: hat halt ein Schwert... o Bogenschütze @@ -53,9 +53,9 @@ Ideen für Features: einen Bomber zu bauen und der kann einfach mühelos das Schiff in Grund und Boden bomben, weil sich das Schiff gar nicht währen kann. - Mond: man kann mit einer Rakete hinfliegen, generiert genau so wie die "Erde", man hat nur z.B. dauerhaft die Luftbläschen für wenn man unter Wasser ist, kann diese aber mit einer O2 Flasche auffüllen, man kann 2 Blöcke hoch springen, es soll später eigene Biome haben, eigene Villager-Dörfer, etc. - und vllt. paar extra dinge die man kriegen kann. Verzauberungen, etc. die man nur bei diesen Villagern kriegt. + und vllt. paar extra dinge die man kriegen kann. Verzauberungen, etc. die man nur bei diesen Villagern kriegt. (snapshot: 23w13a_or_b, hatte bereits einen MOnd) - Diverse Sorten essen: Küchenblöcke um z.B. Burger, Schnitzel, etc. hinzuzufügen. Jedes soll eigene Vorteile haben. Schnitzel gibt vllt. Stärke als Effekt - Damit man ein restaurant mit fast-food eetc. aufmachen kann und in der Industrialiserung mehr dinge hat + Damit man ein restaurant mit fast-food etc. aufmachen kann und in der Industrialiserung mehr dinge hat - Orgel: Orgel halt, will ne Orgel und dann Bachs Toccata spielen können - Sicherheits sutff: Turrets, ID-Cards, um andere spieler auszusperren, Laser, Fingerabdrucksensoren (lassen halt nur den einen Spieler rein), Laser, Lichtschranken, etc. diff --git a/20231021_Ver1.2/src/main/java/modchest/block/custom/steeringWheelBlock.java b/20231021_Ver1.2/src/main/java/modchest/block/custom/steeringWheelBlock.java index b136e6b..af19f07 100644 --- a/20231021_Ver1.2/src/main/java/modchest/block/custom/steeringWheelBlock.java +++ b/20231021_Ver1.2/src/main/java/modchest/block/custom/steeringWheelBlock.java @@ -1,12 +1,20 @@ package modchest.block.custom; +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.screen.NamedScreenHandlerFactory; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; import net.minecraft.util.ItemScatterer; +import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -36,9 +44,26 @@ public class steeringWheelBlock extends BlockWithEntity implements BlockEntityPr } } + @Override //wird bei einem rechtsklick aufgerufen (ersellt das Blockentity) + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (!world.isClient) { + NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); + + if (screenHandlerFactory != null) { + player.openHandledScreen(screenHandlerFactory); + } + } + return ActionResult.SUCCESS; + } + @Nullable @Override public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return null; + return new steeringWheelEntity(pos, state); + } + + @Nullable + public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { + return checkType( type, modBlockEntities.steering_wheel_interface, steeringWheelEntity::tick); } } \ No newline at end of file diff --git a/20231021_Ver1.2/src/main/java/modchest/block/entity/steeringWheelEntity.java b/20231021_Ver1.2/src/main/java/modchest/block/entity/steeringWheelEntity.java index 64d75d9..fc89b33 100644 --- a/20231021_Ver1.2/src/main/java/modchest/block/entity/steeringWheelEntity.java +++ b/20231021_Ver1.2/src/main/java/modchest/block/entity/steeringWheelEntity.java @@ -2,24 +2,44 @@ package modchest.block.entity; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; 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; +import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; //definiert das Interkationsmenü public class steeringWheelEntity extends BlockEntity implements NamedScreenHandlerFactory, ImplementedInventory { + + public final PropertyDelegate propertyDelegate; //synchonisiert Eigenschaften zwischen client und server + private final DefaultedList inventory = DefaultedList.ofSize(3, ItemStack.EMPTY); public steeringWheelEntity(BlockPos pos, BlockState state) { super(modBlockEntities.steering_wheel_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; + } + }; } @Override @@ -27,6 +47,7 @@ public class steeringWheelEntity extends BlockEntity implements NamedScreenHandl return this.inventory; } + @Override public Text getDisplayName() { return Text.literal("Bereit kaputte Schiffe zu fliegen?"); @@ -37,4 +58,11 @@ public class steeringWheelEntity extends BlockEntity implements NamedScreenHandl public ScreenHandler createMenu(int syncId, PlayerInventory inv, PlayerEntity player) { return null; } + + public static void tick(World world, BlockPos pos, BlockState state, steeringWheelEntity e) { //wird pro tick aufgerufen + if(world.isClient()) { + return; + } + + } } diff --git a/20231021_Ver1.2/src/main/resources/assets/modchest/lang/en_us.json b/20231021_Ver1.2/src/main/resources/assets/modchest/lang/en_us.json index 0de9b08..678dc00 100644 --- a/20231021_Ver1.2/src/main/resources/assets/modchest/lang/en_us.json +++ b/20231021_Ver1.2/src/main/resources/assets/modchest/lang/en_us.json @@ -2,5 +2,5 @@ "item.modchest.shipblock": "Shipblock", "item.modchest.pirates_coin": "Pirate's Coin", "block.modchest.steering_wheel": "Steering Wheel", - "itemGroup.modchest.itemlist1": "Malte's Mod" + "itemGroup.modchest.itemlist1": "Theo macht unfug" } \ No newline at end of file diff --git a/20231021_Ver1.2/src/main/resources/assets/modchest/models/item/pirates_coin.json b/20231021_Ver1.2/src/main/resources/assets/modchest/models/item/pirates_coin.json index e69de29..71095a4 100644 --- a/20231021_Ver1.2/src/main/resources/assets/modchest/models/item/pirates_coin.json +++ b/20231021_Ver1.2/src/main/resources/assets/modchest/models/item/pirates_coin.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "modchest:item/pirates_coin" + } +} \ No newline at end of file diff --git a/20231021_Ver1.2/src/main/resources/assets/modchest/textures/item/shipblock.png b/20231021_Ver1.2/src/main/resources/assets/modchest/textures/item/pirates_coin.png similarity index 100% rename from 20231021_Ver1.2/src/main/resources/assets/modchest/textures/item/shipblock.png rename to 20231021_Ver1.2/src/main/resources/assets/modchest/textures/item/pirates_coin.png diff --git a/20231021_Ver1.2/src/main/resources/fabric.mod.json b/20231021_Ver1.2/src/main/resources/fabric.mod.json index 02d5d69..e41547a 100644 --- a/20231021_Ver1.2/src/main/resources/fabric.mod.json +++ b/20231021_Ver1.2/src/main/resources/fabric.mod.json @@ -5,7 +5,9 @@ "name": "maltesmod", "description": "This mod is a chest full of fun Ideas!", "authors": [ - "Malte Reents" + "Malte Reents", + "Theo Dupuis", + "Paula Dupuis" ], "contact": { "homepage": "reents.tv",