Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Maciej916

Members
  • Posts

    47
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Maciej916's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. Thank you for anser, I didn't know that event even exist, I'll use it instead.
  2. Hello, I'm having troubles with adding custom generation on 1.16.3. I used solution from this post https://forums.minecraftforge.net/topic/90560-1162-how-to-add-custom-ore-to-world-generation/ and it's working for ores but i also want to add new tree and Im getting cast error RubberTreeBlockStateProvider cannot be cast to net.minecraft.world.gen.blockstateprovider.SimpleBlockStateProvider Code I use: public static void initGen() { Registry.register( WorldGenRegistries.CONFIGURED_FEATURE, ModBlocks.COPPER_ORE.getRegistryName(), Feature.ORE .withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.field_241882_a /* base_stone_overworld */, ModBlocks.COPPER_ORE.getDefaultState(), ModConfig.worldgen_copper_size)) .withPlacement(Placement.field_242907_l/* RANGE */.configure(new TopSolidRangeConfig(ModConfig.worldgen_copper_min_height, 0, ModConfig.worldgen_copper_max_height))) .func_242728_a() /* spreadHorizontally */ .func_242731_b(ModConfig.worldgen_copper_size) /* repeat */ ); Registry.register( WorldGenRegistries.CONFIGURED_FEATURE /* Feature Registering */, ModBlocks.RUBBER_SAPLING.getRegistryName() /* Resource Location */, Feature.TREE /* no_surface_ore */.withConfiguration(RUBBER_TREE_CONFIG) .withPlacement(Placement.field_242902_f/* RANGE */.configure(new AtSurfaceWithExtraConfig(12, 12, 72))) ); } public static void setupGen() { for (Map.Entry<RegistryKey<Biome>, Biome> biome : WorldGenRegistries.BIOME.getEntries() /* Collection of Biome Entries */) { if (!biome.getValue().getCategory().equals(Biome.Category.NETHER) && !biome.getValue().getCategory().equals(Biome.Category.THEEND)) { addFeatureToBiome( biome.getValue(), GenerationStage.Decoration.UNDERGROUND_ORES, WorldGenRegistries.CONFIGURED_FEATURE.getOrDefault(ModBlocks.COPPER_ORE.getRegistryName()) ); addFeatureToBiome( biome.getValue(), GenerationStage.Decoration.VEGETAL_DECORATION, WorldGenRegistries.CONFIGURED_FEATURE.getOrDefault(ModBlocks.RUBBER_SAPLING.getRegistryName()) ); } } } public static void addFeatureToBiome(Biome biome, GenerationStage.Decoration decoration, ConfiguredFeature<?, ?> configuredFeature) { List<List<Supplier<ConfiguredFeature<?, ?>>>> biomeFeatures = new ArrayList<>( biome.getGenerationSettings().getFeatures()/* List of Configured Features */ ); while (biomeFeatures.size() <= decoration.ordinal()) { biomeFeatures.add(Lists.newArrayList()); } List<Supplier<ConfiguredFeature<?, ?>>> features = new ArrayList<>(biomeFeatures.get(decoration.ordinal())); features.add(() -> configuredFeature); biomeFeatures.set(decoration.ordinal(), features); ObfuscationReflectionHelper.setPrivateValue(BiomeGenerationSettings.class, biome.getGenerationSettings(), biomeFeatures, "features"); } Rubber tree: public class RubberTree extends Tree { public static final BaseTreeFeatureConfig RUBBER_TREE_CONFIG = ( new BaseTreeFeatureConfig.Builder( new RubberTreeBlockStateProvider(ModBlocks.RUBBER_LOG.getDefaultState()), new SimpleBlockStateProvider(ModBlocks.RUBBER_LEAVES.getDefaultState()), new RubberFoliagePlacer(2, 0), new StraightTrunkPlacer(4, 2, 0), new TwoLayerFeature(1, 0, 1)) ).build(); @Nullable @Override protected ConfiguredFeature<BaseTreeFeatureConfig, ?> getTreeFeature(Random randomIn, boolean p_225546_2_) { return Feature.TREE.withConfiguration(RUBBER_TREE_CONFIG); } } Is there a simple solution to fix this? I can add that tree is working correctly in game, Im only having troubles to add it to generation.
  3. Yes i mean directory. I know i almost always use capabilities when I can, but in this case I need it. I knew how to do it in versions before 1.16 but they change it.
  4. Hello I want to save file in current world catalog and Im having problems how to get current world catalog. I tryed to use String worldName = event.getServer().func_240793_aU_().getWorldName(); But this only gives me world name not actual catalog and multiple worlds can have same name but different catalog. Any ideas how to get proper catalog?
  5. You just proved im an idiot Thank you!
  6. Every time i want to serialize or deserialize FluidTank in tile entity im getting StackOverflow issue, also when i run mod on dedicaded server and when I place block with FluidTank i'm also getting StackOverflow. Is this forge issue or i'm doing something wrong because on 1.15.2 it worked just fine. [19:45:14] [IO-Worker-18/ERROR] [minecraft/Util]: Caught exception in thread Thread[IO-Worker-18,5,SERVER] java.lang.StackOverflowError: null at java.io.DataOutputStream.write(DataOutputStream.java:107) ~[?:1.8.0_251] {} at java.io.DataOutputStream.writeUTF(DataOutputStream.java:401) ~[?:1.8.0_251] {} at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323) ~[?:1.8.0_251] {} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:407) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.write(CompoundNBT.java:84) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:408) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.write(CompoundNBT.java:84) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:408) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.write(CompoundNBT.java:84) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:408) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.write(CompoundNBT.java:84) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:408) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.write(CompoundNBT.java:84) ~[?:?] {re:classloading} at net.minecraft.nbt.CompoundNBT.writeEntry(CompoundNBT.java:408) ~[?:?] {re:classloading} Also when I load save with FLuidTank tile im getting Caused by: java.lang.RuntimeException: Tried to read NBT tag with too high complexity, depth > 512 My code: public final FluidTank tank = new FluidTank(10); @Override public void func_230337_a_(BlockState state, @Nonnull final CompoundNBT compound) { super.func_230337_a_(state, compound); this.tank.readFromNBT(compound.getCompound("tank")); } @Override public CompoundNBT write(CompoundNBT compound) { super.write(compound); compound.put("tank", this.tank.writeToNBT(compound)); return compound; } Forge version: 32.0.41
  7. Hello I tryed to generate json resources but GatherDataEvent is never called and idk why because it worked before and now it's not beeing called, there is no error in console. DataGenerators.class @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public class DataGenerators { @SubscribeEvent public static void gatherData(GatherDataEvent event) { DataGenerator generator = event.getGenerator(); if (event.includeServer()) { generator.addProvider(new Recipes(generator)); generator.addProvider(new LootTables(generator)); } } } build.gradle data { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' args '--mod', 'indreb', '--all', '--output', file('src/generated/resources/') environment 'target', 'fmluserdevdata' mods { indreb { source sourceSets.main } } }
  8. Oh didn't know about that ty again new ResourceLocation(MODID,"...")
  9. Thank you it worked CookingRecipeBuilder.smeltingRecipe(Ingredient.fromItems(ModBlocks.COPPER_ORE.get()), ModItems.COPPER_INGOT.get(), 0.6f, 200) .addCriterion("item", InventoryChangeTrigger.Instance.forItems(ModBlocks.COPPER_ORE.get())) .build(consumer, new ResourceLocation("copper_ingot_smelting"));
  10. Hello Im trying to generate json recepies by using Receipe Provider and everything is working fine but when I want to add another recipe for same item is show "Duplicate recipe..." error. I want to add crafting and smelting recipe and second one will throw duplicate error. Im just started to use this method so probably it's easy to fix. protected void registerRecipes(Consumer<IFinishedRecipe> consumer) { ShapedRecipeBuilder.shapedRecipe(ModItems.COPPER_INGOT.get(), 9) .patternLine("x ") .key('x', ModBlocks.COPPER_BLOCK.get()) .setGroup(MODID) .addCriterion("item", InventoryChangeTrigger.Instance.forItems(ModBlocks.COPPER_BLOCK.get())) .build(consumer); CookingRecipeBuilder.smeltingRecipe(Ingredient.fromItems(ModBlocks.COPPER_ORE.get()), ModItems.COPPER_INGOT.get(), 0.6f, 200) .addCriterion("item", InventoryChangeTrigger.Instance.forItems(ModBlocks.COPPER_ORE.get())) .build(consumer); } Error: Caused by: java.lang.IllegalStateException: Duplicate recipe indreb:copper_ingot
  11. This is basicly how the current code works. When you place a cable it looks for network around and possible outputs and inputs, if there is non eit create new network, if there is one it join that nrtwork and if there is more than on it merge all. Each network of cables know possible inputs and outputs and have little storage but can accept or output energy only if there is a valid machine connected. When you break cable it try to rebuild network if network split it create new ones and each new network also know inputs and outputs.
  12. Hello, couple days ago I started making tech mod but after I add couple machines i realized that I need some sort of cables to transport energy from one machine to another. When I started i didn't know that it will be that hard to make but after some days I was able to make something that works. I know there is some bugs and issues with it and some things are still missing. There is many people on this forum that are more advanced in java programming that Im, If you one of this people you probably can help me improve my code. Im not asking you to code anything just look at my code and give me clues what i can improve or remake to make it better. Source: https://github.com/Maciej916/Test-Mod/tree/master/src/main/java/com/maciej916/testmod
  13. Can I just subscribe to WorldTickEvent and get capability and call update in that capability every tick or it's bad idea?
  14. I don't think it's possibel because it want to load class from client, how can i tick this in other ways? Code: https://github.com/Maciej916/Test-Mod/blob/master/src/main/java/com/maciej916/testmod/common/capabilities/energy/EnergyNetworkList.java Error: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/ITickable at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_211] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_211] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_211] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:127) ~[modlauncher-5.0.0-milestone.4.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:96) ~[modlauncher-5.0.0-milestone.4.jar:?] {} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211] {} at com.maciej916.testmod.ForgeEventSubscriber.onAttachCapabilities(ForgeEventSubscriber.java:18) ~[?:1.15.1-0.1.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_5_ForgeEventSubscriber_onAttachCapabilities_AttachCapabilitiesEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80) ~[eventbus-2.0.0-milestone.1-service.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) ~[eventbus-2.0.0-milestone.1-service.jar:?] {} at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:564) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:558) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraftforge.common.capabilities.CapabilityProvider.gatherCapabilities(CapabilityProvider.java:48) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerWorld.initCapabilities(ServerWorld.java:1419) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.world.server.ServerWorld.<init>(ServerWorld.java:190) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.func_213194_a(MinecraftServer.java:372) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:361) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:210) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:610) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.lang.Thread.run(Unknown Source) [?:1.8.0_211] {} Caused by: java.lang.ClassNotFoundException: net.minecraft.client.renderer.texture.ITickable at java.lang.ClassLoader.findClass(Unknown Source) ~[?:1.8.0_211] {} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:101) ~[modlauncher-5.0.0-milestone.4.jar:?] {} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211] {} ... 20 more
×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.