diff --git a/src/main/java/sunsetsatellite/signalindustries/SignalIndustries.java b/src/main/java/sunsetsatellite/signalindustries/SignalIndustries.java index a4d24056..c1c7c9e6 100644 --- a/src/main/java/sunsetsatellite/signalindustries/SignalIndustries.java +++ b/src/main/java/sunsetsatellite/signalindustries/SignalIndustries.java @@ -65,6 +65,7 @@ import sunsetsatellite.signalindustries.items.containers.ItemSignalumSaber; import sunsetsatellite.signalindustries.items.attachments.ItemPulsarAttachment; import sunsetsatellite.signalindustries.items.attachments.ItemTieredAttachment; +import sunsetsatellite.signalindustries.misc.SignalIndustriesAchievementPage; import sunsetsatellite.signalindustries.render.*; import sunsetsatellite.signalindustries.util.AttachmentPoint; import sunsetsatellite.signalindustries.util.BlockTexture; @@ -749,7 +750,7 @@ public class SignalIndustries implements ModInitializer, GameStartEntrypoint { public static final ItemSignalumPowerSuit signalumPowerSuitLeggings = (ItemSignalumPowerSuit) ItemHelper.createItem(MOD_ID,new ItemSignalumPowerSuit("reinforced.signalumpowersuit.leggings",config.getInt("ItemIDs.signalumPowerSuitLeggings"),armorSignalumPowerSuit,2,Tier.REINFORCED),"reinforced.signalumpowersuit.leggings","signalumpowersuit_leggings.png"); public static final ItemSignalumPowerSuit signalumPowerSuitBoots = (ItemSignalumPowerSuit) ItemHelper.createItem(MOD_ID,new ItemSignalumPowerSuit("reinforced.signalumpowersuit.boots",config.getInt("ItemIDs.signalumPowerSuitBoots"),armorSignalumPowerSuit,3,Tier.REINFORCED),"reinforced.signalumpowersuit.boots","signalumpowersuit_boots.png"); - public static final Item testingAttachment = ItemHelper.createItem(MOD_ID,new ItemAttachment(config.getInt("ItemIDs.testingAttachment"), listOf(AttachmentPoint.ANY)),"attachment.testingAttachment","energyorb.png"); + //public static final Item testingAttachment = ItemHelper.createItem(MOD_ID,new ItemAttachment(config.getInt("ItemIDs.testingAttachment"), listOf(AttachmentPoint.ANY)),"attachment.testingAttachment","energyorb.png"); public static final Item pulsarAttachment = ItemHelper.createItem(MOD_ID,new ItemPulsarAttachment(config.getInt("ItemIDs.pulsarAttachment"), listOf(AttachmentPoint.ARM_FRONT), Tier.REINFORCED),"reinforced.attachment.pulsar","pulsar_attachment.png").setMaxStackSize(1); public static final Item extendedEnergyPack = ItemHelper.createItem(MOD_ID,new ItemTieredAttachment(config.getInt("ItemIDs.extendedEnergyPack"), listOf(AttachmentPoint.CORE_BACK), Tier.REINFORCED),"reinforced.attachment.extendedEnergyPack","extended_energy_pack.png").setMaxStackSize(1); @@ -759,7 +760,7 @@ public class SignalIndustries implements ModInitializer, GameStartEntrypoint { public static final SuitBaseAbility boostAbility = new BoostAbility(); public static final SuitBaseAbility projectileAbility = new ProjectileAbility(); - public static final Item testingAbilityContainer = ItemHelper.createItem(MOD_ID,new ItemWithAbility(config.getInt("ItemIDs.testingAbilityContainer"),testEffectAbility),"testingAbilityItem","testingability.png"); + //public static final Item testingAbilityContainer = ItemHelper.createItem(MOD_ID,new ItemWithAbility(config.getInt("ItemIDs.testingAbilityContainer"),testEffectAbility),"testingAbilityItem","testingability.png"); //public static final Item clockworkAbilityContainer = ItemHelper.createItem(MOD_ID,new ItemWithAbility(config.getInt("ItemIDs.clockworkAbilityContainer"),clockworkAbility),"clockworkAbilityContainer","ability12.png"); public static final Item boostAbilityContainer = ItemHelper.createItem(MOD_ID,new ItemWithAbility(config.getInt("ItemIDs.boostAbilityContainer"),boostAbility),"boostAbilityContainer","ability2.png"); public static final Item projectileAbilityContainer = ItemHelper.createItem(MOD_ID,new ItemWithAbility(config.getInt("ItemIDs.projectileAbilityContainer"),projectileAbility),"projectileAbilityContainer","ability1.png"); @@ -793,6 +794,7 @@ public class SignalIndustries implements ModInitializer, GameStartEntrypoint { public static final Item attachmentPoint = simpleItem("attachmentPoint","attachment_point.png"); public static final Item meteorTracker = ItemHelper.createItem(MOD_ID,new ItemMeteorTracker(config.getInt("ItemIDs.meteorTracker")),"meteorTracker","meteor_tracker_uncalibrated.png"); public static final Item blankAbilityModule = simpleItem("blankAbilityModule","blank_module.png"); + public static final Item abilityContainerCasing = simpleItem("abilityContainerCasing","abilitycontainercasing.png"); public static final int[] energyOrbTex = TextureHelper.getOrCreateItemTexture(MOD_ID,"energyorb.png"); @@ -801,7 +803,7 @@ public class SignalIndustries implements ModInitializer, GameStartEntrypoint { public static final Weather weatherEclipse = new WeatherEclipse(11).setLanguageKey("solarEclipse"); public static final Weather weatherSolarApocalypse = new WeatherSolarApocalypse(12).setLanguageKey("solarApocalypse"); - public static final AchievementPage ACHIEVEMENTS = null; //new SignalIndustriesAchievementPage(); + public static final AchievementPage ACHIEVEMENTS = new SignalIndustriesAchievementPage(); public static final Biome biomeEternity = Biomes.register("signalindustries:eternity",new Biome().setFillerBlock(realityFabric.id).setTopBlock(realityFabric.id).setColor(0x808080)); public static final WorldType eternityWorld = WorldTypes.register("signalindustries:eternity",new WorldTypeEternity(key("eternity"))); @@ -864,8 +866,6 @@ public void onInitialize() { } public SignalIndustries(){ - - //AchievementHelper.addPage(ACHIEVEMENTS); //RecipeFIleLoader.load("/assets/signalindustries/recipes/recipes.txt",mapOf(new String[]{"SignalIndustries"},new String[]{"sunsetsatellite.signalindustries.SignalIndustries"})); BlockModelDispatcher.getInstance().addDispatch(dilithiumRail,new BlockModelRenderBlocks(9)); BlockModelDispatcher.getInstance().addDispatch(energyStill,new BlockModelRenderBlocks(4)); @@ -1119,6 +1119,7 @@ public void beforeGameStart() { @Override public void afterGameStart() { + AchievementHelper.addPage(ACHIEVEMENTS); OptionsCategory category = new OptionsCategory("gui.options.page.controls.category.signalindustries"); category .withComponent(new KeyBindingComponent(((IKeybinds) Minecraft.getMinecraft(Minecraft.class).gameSettings).signalIndustries$getKeyOpenSuit())) diff --git a/src/main/java/sunsetsatellite/signalindustries/gui/guidebook/pages/CrystalCutterPage.java b/src/main/java/sunsetsatellite/signalindustries/gui/guidebook/pages/CrystalCutterPage.java index bd70300f..ae11900d 100644 --- a/src/main/java/sunsetsatellite/signalindustries/gui/guidebook/pages/CrystalCutterPage.java +++ b/src/main/java/sunsetsatellite/signalindustries/gui/guidebook/pages/CrystalCutterPage.java @@ -74,6 +74,10 @@ public CrystalCutterPage(GuidebookSection section, ArrayList return false; }).collect(Collectors.toList()); + if(acceptedMachines.isEmpty()){ + continue; + } + outputSymbol = new RecipeSymbol(recipe.getOutput()); recipeSlots.add(new SlotGuidebook(0, (width/2)-52, 36*(map.size()+1)-16, inputSymbol.get(0), false,recipe)); recipeSlots.add(new SlotGuidebook(1, (width/2)-32, 36*(map.size()+1)-16, inputSymbol.get(1), false,recipe)); @@ -112,6 +116,9 @@ protected void renderForeground(RenderEngine re, FontRenderer fr, int x, int y, for (int i = 1; i <= recipes.size(); i++) { RecipeEntryMachine recipe = recipes.get(i-1); List list = map.get(recipe); + if(list == null || list.isEmpty()){ + continue; + } drawStringCenteredNoShadow(fr,recipe.getData().ticks+"t | ID: "+recipe.getData().id,x + list.get(list.size()-1).xDisplayPosition - 20, y + list.get(list.size()-1).yDisplayPosition + 18,0xFF202020); drawStringCenteredNoShadow(fr,recipe.getData().cost+" sE",x + list.get(list.size()-1).xDisplayPosition - 20, y + list.get(list.size()-1).yDisplayPosition + 26,0xFFCC0000); @@ -137,6 +144,9 @@ protected void renderBackground(RenderEngine re, int x, int y) { for (int i = 1; i <= recipes.size(); i++) { RecipeEntryMachine recipe = recipes.get(i-1); List list = map.get(recipe); + if(list == null || list.isEmpty()){ + continue; + } drawTexturedModalRect(x + list.get(list.size()-1).xDisplayPosition - 32, y + list.get(list.size()-1).yDisplayPosition, 90, 35, 22, 15); } } diff --git a/src/main/java/sunsetsatellite/signalindustries/recipes/container/CrystalCutterRecipes.java b/src/main/java/sunsetsatellite/signalindustries/recipes/container/CrystalCutterRecipes.java index 32c1eb9c..28c96ea5 100644 --- a/src/main/java/sunsetsatellite/signalindustries/recipes/container/CrystalCutterRecipes.java +++ b/src/main/java/sunsetsatellite/signalindustries/recipes/container/CrystalCutterRecipes.java @@ -48,7 +48,7 @@ public void addRecipes(RecipeGroup group) { new RecipeExtendedSymbol(new ItemStack(SignalIndustries.signalumCrystal,1)) }, new ItemStack(SignalIndustries.pureCrystalChip,2,0), - new RecipeProperties(100,80,2, Tier.BASIC,false) + new RecipeProperties(100,80,2, Tier.REINFORCED,false) ) ); } diff --git a/src/main/java/sunsetsatellite/signalindustries/recipes/container/SIRecipes.java b/src/main/java/sunsetsatellite/signalindustries/recipes/container/SIRecipes.java index 5250a616..3b069ef2 100644 --- a/src/main/java/sunsetsatellite/signalindustries/recipes/container/SIRecipes.java +++ b/src/main/java/sunsetsatellite/signalindustries/recipes/container/SIRecipes.java @@ -15,7 +15,9 @@ import sunsetsatellite.signalindustries.recipes.entry.RecipeEntryMachineFluid; import turniplabs.halplibe.util.RecipeEntrypoint; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; public class SIRecipes implements RecipeEntrypoint { public static final RecipeNamespaceSI SIGNAL_INDUSTRIES = new RecipeNamespaceSI(); @@ -36,6 +38,10 @@ public void onRecipesReady() { new SignalIndustriesFluidPlugin().initializePlugin(SignalIndustries.LOGGER); Registries.RECIPE_TYPES.register("signalindustries:machine", RecipeEntryMachine.class); Registries.RECIPE_TYPES.register("signalindustries:machine/fluid", RecipeEntryMachineFluid.class); + List abilityGroup = new ArrayList<>(); + abilityGroup.add(SignalIndustries.boostAbilityContainer.getDefaultStack()); + abilityGroup.add(SignalIndustries.projectileAbilityContainer.getDefaultStack()); + Registries.ITEM_GROUPS.register("signalindustries:ability_containers",abilityGroup); new ExtractorRecipes().addRecipes(EXTRACTOR); new CrusherRecipes().addRecipes(CRUSHER); new AlloySmelterRecipes().addRecipes(ALLOY_SMELTER); diff --git a/src/main/resources/achievements.txt b/src/main/resources/achievements.txt index 1713cef7..47f1ba4d 100644 --- a/src/main/resources/achievements.txt +++ b/src/main/resources/achievements.txt @@ -61,7 +61,7 @@ Find a meteor containing Dilithium Shards. Interdimensional Discover crystallized reality - the Dimensional Shard. -BOOST +BOOST BOOST BOOST Craft the Dilithium Booster to speed up your machines. New Horizons @@ -70,7 +70,7 @@ Construct your first multiblock. Anchored Build the Dimensional Anchor multiblock to help you encode warp orbs. -Ticket to Everywhere and Nowhere +One-way Ticket To Anywhere Create a Warp Orb. Tearing Spacetime @@ -83,13 +83,16 @@ Under a Dead Sky Take a look around Eternity and find out what it has to offer. False Eternity -Escape Eternity without dying. +Escape Eternity without dying by planning ahead. System, activate! Wear the entire Signalum Power Suit set for the first time. ... +Crimson Warrior +Walk through fire completing the Reinforced Wrath Beacon challenge. + Destroyer Complete the Awakened Wrath Beacon challenge and receive an ancient artifact. diff --git a/src/main/resources/assets/signalindustries/recipes/workbench.json b/src/main/resources/assets/signalindustries/recipes/workbench.json index 6b278187..54a336bb 100644 --- a/src/main/resources/assets/signalindustries/recipes/workbench.json +++ b/src/main/resources/assets/signalindustries/recipes/workbench.json @@ -3264,5 +3264,335 @@ "meta": 0 }, "consumeContainers": false + }, + { + "name": "signalindustries:workbench/prototype_harness", + "type": "minecraft:crafting/shaped", + "pattern": [ + "P P", + "SES", + " P " + ], + "symbols": [ + { + "symbol": "P", + "stack": { + "key": "item.signalindustries.crystalAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.signalumCrystal", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.basicEnergyCore", + "amount": 1, + "meta": 0 + } + } + ], + "result": { + "key": "item.signalindustries.basic.prototypeHarness", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false + }, + { + "name": "signalindustries:workbench/power_suit_helmet", + "type": "minecraft:crafting/shaped", + "pattern": [ + "SAS", + "PHE", + " G " + ], + "symbols": [ + { + "symbol": "P", + "stack": { + "key": "item.signalindustries.reinforcedCrystalAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.saturatedSignalumAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "A", + "stack": { + "key": "item.signalindustries.attachmentPoint", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.reinforcedEnergyCore", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "H", + "stack": { + "key": "item.armor.helmet.steel", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "G", + "stack": { + "key": "item.signalindustries.basic.prototypeHarnessGoggles", + "amount": 1, + "meta": 0 + } + } + ], + "result": { + "key": "item.signalindustries.reinforced.signalumpowersuit.helmet", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false + }, + { + "name": "signalindustries:workbench/power_suit_chestplate", + "type": "minecraft:crafting/shaped", + "pattern": [ + "PHS", + "AEA", + "SCP" + ], + "symbols": [ + { + "symbol": "P", + "stack": { + "key": "item.signalindustries.reinforcedCrystalAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.saturatedSignalumAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "A", + "stack": { + "key": "item.signalindustries.attachmentPoint", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.reinforcedEnergyCore", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "C", + "stack": { + "key": "item.armor.chestplate.steel", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "H", + "stack": { + "key": "item.signalindustries.basic.prototypeHarness", + "amount": 1, + "meta": 0 + } + } + ], + "result": { + "key": "item.signalindustries.reinforced.signalumpowersuit.chestplate", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false + }, + { + "name": "signalindustries:workbench/power_suit_leggings", + "type": "minecraft:crafting/shaped", + "pattern": [ + "PEP", + "SLS", + "A A" + ], + "symbols": [ + { + "symbol": "P", + "stack": { + "key": "item.signalindustries.reinforcedCrystalAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.saturatedSignalumAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "A", + "stack": { + "key": "item.signalindustries.attachmentPoint", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.reinforcedEnergyCore", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "L", + "stack": { + "key": "item.armor.leggings.steel", + "amount": 1, + "meta": 0 + } + } + ], + "result": { + "key": "item.signalindustries.reinforced.signalumpowersuit.leggings", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false + }, + { + "name": "signalindustries:workbench/power_suit_boots", + "type": "minecraft:crafting/shaped", + "pattern": [ + "PSP", + "ABA", + " E " + ], + "symbols": [ + { + "symbol": "P", + "stack": { + "key": "item.signalindustries.reinforcedCrystalAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.saturatedSignalumAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "A", + "stack": { + "key": "item.signalindustries.attachmentPoint", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.reinforcedEnergyCore", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "B", + "stack": { + "key": "item.armor.boots.steel", + "amount": 1, + "meta": 0 + } + } + ], + "result": { + "key": "item.signalindustries.reinforced.signalumpowersuit.boots", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false + }, + { + "name": "signalindustries:workbench/ability_module", + "type": "minecraft:crafting/shaped", + "pattern": [ + " A ", + "SMS", + " E " + ], + "symbols": [ + { + "symbol": "M", + "stack": { + "key": "item.signalindustries.blankAbilityModule", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "S", + "stack": { + "key": "item.signalindustries.saturatedSignalumAlloyPlate", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "E", + "stack": { + "key": "item.signalindustries.energyCatalyst", + "amount": 1, + "meta": 0 + } + }, + { + "symbol": "A", + "group": "signalindustries:ability_containers" + } + ], + "result": { + "key": "item.signalindustries.abilityModule", + "amount": 1, + "meta": 0 + }, + "consumeContainers": false } ] \ No newline at end of file diff --git a/src/main/resources/lang/signalindustries/en_US.lang b/src/main/resources/lang/signalindustries/en_US.lang index a30577e6..83533d0a 100644 --- a/src/main/resources/lang/signalindustries/en_US.lang +++ b/src/main/resources/lang/signalindustries/en_US.lang @@ -167,6 +167,9 @@ item.signalindustries.reinforced.signalumpowersuit.boots.desc=Boots of the power item.signalindustries.testingAbilityItem.name=Ability Container: Testing Ability item.signalindustries.testingAbilityItem.desc=Container for a [Signalum Power Suit] ability. +item.signalindustries.abilityContainerCasing.name=Ability Container Casing +item.signalindustries.abilityContainerCasing.desc=Casing for [Ability Containers]. + item.signalindustries.clockworkAbilityContainer.name=Ability Container: Clockwork item.signalindustries.clockworkAbilityContainer.desc=Container for a [Signalum Power Suit] ability. @@ -473,7 +476,7 @@ ability.signalindustries.awakened.clockwork.desc=The sands of time freeze on you achievements.page.signalindustries.desc=Achievements for Signal Industries! achievement.signalindustries.init=Initialization -achievement.signalindustries.init.desc=Your journey begins here! Obtain some Raw Signalum Crystals. +achievement.signalindustries.init.desc=Your journey begins here! Obtain some Raw Signalum Crystals from a fallen meteorite. achievement.signalindustries.thePrototype=The Prototype achievement.signalindustries.thePrototype.desc=Create your first Prototype Machine Core. achievement.signalindustries.fromWithin=From Within