diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b0d62267..28c57826d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Added debuff effects for all medical conditions, so you're immediately notified when carrying something hazardous instead of wondering why you have Hunger II. @Pyritie - The hazard effect that previously instantly killed you (which did not spawn a corpse) now gives you Wither III instead. @Pyritie - Added machine recipes for crafting tongs @Pyritie +- Added two more early game mechanical belts, and rubber+ belts are also now more expensive. @Pyritie - Doubled the durability of all space suits @Pyritie ### Bug fixes - Fixed aged sake, vodka, and whiskey losing their buff effects, but for real this time @Pyritie diff --git a/kubejs/assets/greate/lang/en_us.json b/kubejs/assets/greate/lang/en_us.json index 1e138bfab..a4a4331f2 100644 --- a/kubejs/assets/greate/lang/en_us.json +++ b/kubejs/assets/greate/lang/en_us.json @@ -32,7 +32,7 @@ "block.greate.large_andesite_alloy_cogwheel": "Large Basic Cogwheel", "block.greate.metal_girder_encased_andesite_alloy_shaft": "Metal Girder Encased Basic Shaft", "block.greate.powered_andesite_alloy_shaft": "Powered Basic Shaft", - "item.greate.wooden_belt_connector": "Plank Tread Mechanical Belt", + "item.greate.andesite_alloy_belt_connector": "Plank Tread Mechanical Belt", "item.greate.stone_belt_connector": "Leather Mechanical Belt", "item.greate.rubber_belt_connector": "Rubber Mechanical Belt", "item.greate.silicone_rubber_belt_connector": "Silicone Rubber Mechanical Belt", diff --git a/kubejs/assets/greate/textures/block/andesite_alloy/belt.png b/kubejs/assets/greate/textures/block/andesite_alloy/belt.png new file mode 100644 index 000000000..bd259c25d Binary files /dev/null and b/kubejs/assets/greate/textures/block/andesite_alloy/belt.png differ diff --git a/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal.png b/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal.png new file mode 100644 index 000000000..6dd58dd7d Binary files /dev/null and b/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal.png differ diff --git a/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal_scroll.png b/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal_scroll.png new file mode 100644 index 000000000..b65fed607 Binary files /dev/null and b/kubejs/assets/greate/textures/block/andesite_alloy/belt_diagonal_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/andesite_alloy/belt_offset.png b/kubejs/assets/greate/textures/block/andesite_alloy/belt_offset.png new file mode 100644 index 000000000..8ea0053a8 Binary files /dev/null and b/kubejs/assets/greate/textures/block/andesite_alloy/belt_offset.png differ diff --git a/kubejs/assets/greate/textures/block/andesite_alloy/belt_scroll.png b/kubejs/assets/greate/textures/block/andesite_alloy/belt_scroll.png new file mode 100644 index 000000000..751ec63b0 Binary files /dev/null and b/kubejs/assets/greate/textures/block/andesite_alloy/belt_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/silicone_rubber/belt.png b/kubejs/assets/greate/textures/block/silicone_rubber/belt.png new file mode 100644 index 000000000..196a29fef Binary files /dev/null and b/kubejs/assets/greate/textures/block/silicone_rubber/belt.png differ diff --git a/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal.png b/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal.png new file mode 100644 index 000000000..cb5978968 Binary files /dev/null and b/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal.png differ diff --git a/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal_scroll.png b/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal_scroll.png new file mode 100644 index 000000000..ca3baee2e Binary files /dev/null and b/kubejs/assets/greate/textures/block/silicone_rubber/belt_diagonal_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/silicone_rubber/belt_offset.png b/kubejs/assets/greate/textures/block/silicone_rubber/belt_offset.png new file mode 100644 index 000000000..2d585be5e Binary files /dev/null and b/kubejs/assets/greate/textures/block/silicone_rubber/belt_offset.png differ diff --git a/kubejs/assets/greate/textures/block/silicone_rubber/belt_scroll.png b/kubejs/assets/greate/textures/block/silicone_rubber/belt_scroll.png new file mode 100644 index 000000000..731e30086 Binary files /dev/null and b/kubejs/assets/greate/textures/block/silicone_rubber/belt_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/stone/belt.png b/kubejs/assets/greate/textures/block/stone/belt.png new file mode 100644 index 000000000..b1806dadc Binary files /dev/null and b/kubejs/assets/greate/textures/block/stone/belt.png differ diff --git a/kubejs/assets/greate/textures/block/stone/belt_diagonal.png b/kubejs/assets/greate/textures/block/stone/belt_diagonal.png new file mode 100644 index 000000000..a2ca94799 Binary files /dev/null and b/kubejs/assets/greate/textures/block/stone/belt_diagonal.png differ diff --git a/kubejs/assets/greate/textures/block/stone/belt_diagonal_scroll.png b/kubejs/assets/greate/textures/block/stone/belt_diagonal_scroll.png new file mode 100644 index 000000000..cf862379d Binary files /dev/null and b/kubejs/assets/greate/textures/block/stone/belt_diagonal_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/stone/belt_offset.png b/kubejs/assets/greate/textures/block/stone/belt_offset.png new file mode 100644 index 000000000..2315f5d2a Binary files /dev/null and b/kubejs/assets/greate/textures/block/stone/belt_offset.png differ diff --git a/kubejs/assets/greate/textures/block/stone/belt_scroll.png b/kubejs/assets/greate/textures/block/stone/belt_scroll.png new file mode 100644 index 000000000..c9318f8e0 Binary files /dev/null and b/kubejs/assets/greate/textures/block/stone/belt_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt.png b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt.png new file mode 100644 index 000000000..d6925825a Binary files /dev/null and b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt.png differ diff --git a/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal.png b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal.png new file mode 100644 index 000000000..80146b3f7 Binary files /dev/null and b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal.png differ diff --git a/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal_scroll.png b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal_scroll.png new file mode 100644 index 000000000..f5fc0cccd Binary files /dev/null and b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_diagonal_scroll.png differ diff --git a/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_offset.png b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_offset.png new file mode 100644 index 000000000..1b058c975 Binary files /dev/null and b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_offset.png differ diff --git a/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_scroll.png b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_scroll.png new file mode 100644 index 000000000..22ff4ed23 Binary files /dev/null and b/kubejs/assets/greate/textures/block/styrene_butadiene_rubber/belt_scroll.png differ diff --git a/kubejs/assets/greate/textures/item/andesite_alloy_belt_connector.png b/kubejs/assets/greate/textures/item/andesite_alloy_belt_connector.png new file mode 100644 index 000000000..170fe3f95 Binary files /dev/null and b/kubejs/assets/greate/textures/item/andesite_alloy_belt_connector.png differ diff --git a/kubejs/assets/greate/textures/item/rubber_belt_connector.png b/kubejs/assets/greate/textures/item/rubber_belt_connector.png new file mode 100644 index 000000000..e61c1dfe2 Binary files /dev/null and b/kubejs/assets/greate/textures/item/rubber_belt_connector.png differ diff --git a/kubejs/assets/greate/textures/item/stone_belt_connector.png b/kubejs/assets/greate/textures/item/stone_belt_connector.png new file mode 100644 index 000000000..f5b101e99 Binary files /dev/null and b/kubejs/assets/greate/textures/item/stone_belt_connector.png differ diff --git a/kubejs/assets/greate/textures/item/styrene_butadiene_rubber_belt_connector.png b/kubejs/assets/greate/textures/item/styrene_butadiene_rubber_belt_connector.png new file mode 100644 index 000000000..5f95e2bbd Binary files /dev/null and b/kubejs/assets/greate/textures/item/styrene_butadiene_rubber_belt_connector.png differ diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 0d51633b6..d8a884d40 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -212,7 +212,7 @@ "gtceu.recipe.category.ingot_molding": "Material Molding", "block.gtceu.wire_coil.tooltip_pyro": "§8Pyrolyse Oven and Nuclear Fuel Factory:§r", "block.gtceu.wire_coil.tooltip_cracking": "§8Cracking Unit, Coal Liquefaction Tower, Moon and Ostrum Harvesters:§r", - "tooltip.moldraw.shift_view": "§o§7Hold (Shift) for Molecular Structure§r", + "tooltip.moldraw.shift_view": "§7§oHold (Shift) for Molecular Structure§r", "tagprefix.sword_head": "%s Sword Head", "tagprefix.pickaxe_head": "%s Pickaxe Head", "tagprefix.shovel_head": "%s Shovel Head", diff --git a/kubejs/server_scripts/greate/recipes.js b/kubejs/server_scripts/greate/recipes.js index 59380ef8d..a8587f5ed 100644 --- a/kubejs/server_scripts/greate/recipes.js +++ b/kubejs/server_scripts/greate/recipes.js @@ -636,70 +636,120 @@ function registerGreateRecipes(event) { // #region Belt Connector - removeMaceratorRecipe(event, 'macerate_rubber_belt_connector') - removeMaceratorRecipe(event, 'macerate_silicone_rubber_belt_connector') - removeMaceratorRecipe(event, 'macerate_polyethylene_belt_connector') - event.remove({ id: 'gtceu:extractor/extract_rubber_belt_connector' }) - event.remove({ id: 'gtceu:extractor/extract_silicone_rubber_belt_connector' }) - event.remove({ id: 'gtceu:extractor/extract_polyethylene_belt_connector' }) - - event.shaped('3x greate:rubber_belt_connector', [ - 'C ', + // Wood + event.shaped('greate:andesite_alloy_belt_connector', [ 'AAA', - 'B ' + 'CBC', + 'AAA' + ], { + A: '#tfc:lumber', + B: '#forge:tools/hammers', + C: '#tfg:metal_chains' + }).id('tfg:shaped/wood_belt_connector') + + removeMaceratorRecipe(event, 'macerate_andesite_alloy_belt_connector') + event.remove({ id: 'gtceu:shaped/andesite_alloy_belt_connector' }) + event.remove({ id: 'gtceu:extractor/extract_andesite_alloy_belt_connector' }) + event.remove({ id: 'gtceu:arc_furnace/arc_andesite_alloy_belt_connector' }) + + TFGHelpers.registerMaterialInfo('greate:andesite_alloy_belt_connector', { 'wood': 1 }); + + // Leather + event.recipes.tfc.damage_inputs_shaped_crafting( + event.shaped('greate:stone_belt_connector', [ + 'AAA', + 'CBC' + ], { + A: '#forge:leather', + B: '#tfc:sewing_needles', + C: '#forge:string', + })).id('tfg:shaped/leather_belt_connector') + + event.recipes.gtceu.assembler('leather_belt_connector') + .itemInputs('3x #forge:leather', '2x #forge:string') + .itemOutputs('greate:stone_belt_connector') + .circuit(11) + .duration(50) + .EUt(GTValues.VA[GTValues.ULV]) + + removeMaceratorRecipe(event, 'macerate_stone_belt_connector') + event.remove({ id: 'gtceu:shaped/stone_belt_connector' }) + + TFGHelpers.registerMaterialInfo('greate:stone_belt_connector', { 'air': 1 }); + + // Rubber + event.shaped('greate:rubber_belt_connector', [ + 'AAA', + 'B C' ], { A: '#forge:plates/rubber', - B: '#forge:tools/knives', - C: '#forge:tools/hammers', - }).id('gtceu:shaped/rubber_belt_connector') + B: '#forge:tools/hammers', + C: '#forge:tools/wrenches', + }).id('tfg:shaped/rubber_belt_connector') event.recipes.gtceu.assembler('rubber_belt_connector') - .itemInputs('gtceu:rubber_plate') + .itemInputs('3x gtceu:rubber_plate') .itemOutputs('greate:rubber_belt_connector') .circuit(11) .duration(50) .EUt(GTValues.VA[GTValues.ULV]) - .removePreviousMaterialInfo() .addMaterialInfo(true) - event.shaped('3x greate:silicone_rubber_belt_connector', [ - 'C ', + event.remove({ id: 'gtceu:shaped/rubber_belt_connector' }) + removeMaceratorRecipe(event, 'rubber_belt_connector') + removeMaceratorRecipe(event, 'macerate_rubber_belt_connector') + event.remove({ id: 'gtceu:extractor/extract_rubber_belt_connector' }) + + TFGHelpers.registerMaterialInfo('greate:rubber_belt_connector', { 'rubber': 3 }); + + // Silicone rubber + event.shaped('greate:silicone_rubber_belt_connector', [ 'AAA', - 'B ' + 'B C' ], { A: '#forge:plates/silicone_rubber', - B: '#forge:tools/knives', - C: '#forge:tools/hammers', - }).id('gtceu:shaped/silicone_rubber_belt_connector') + B: '#forge:tools/hammers', + C: '#forge:tools/wrenches', + }).id('tfg:shaped/silicone_rubber_belt_connector') event.recipes.gtceu.assembler('silicone_rubber_belt_connector') - .itemInputs('gtceu:silicone_rubber_plate') + .itemInputs('3x gtceu:silicone_rubber_plate') .itemOutputs('greate:silicone_rubber_belt_connector') .circuit(11) .duration(50) .EUt(GTValues.VA[GTValues.ULV]) - .removePreviousMaterialInfo() .addMaterialInfo(true) - event.shaped('3x greate:polyethylene_belt_connector', [ - 'C ', + event.remove({ id: 'gtceu:shaped/silicone_rubber_belt_connector' }) + removeMaceratorRecipe(event, 'macerate_silicone_rubber_belt_connector') + event.remove({ id: 'gtceu:extractor/extract_silicone_rubber_belt_connector' }) + + TFGHelpers.registerMaterialInfo('greate:silicone_rubber_belt_connector', { 'silicone_rubber': 3 }); + + // SBR rubber + event.shaped('greate:styrene_butadiene_rubber_belt_connector', [ 'AAA', - 'B ' + 'B C' ], { A: '#forge:plates/styrene_butadiene_rubber', - B: '#forge:tools/knives', - C: '#forge:tools/hammers', - }).id('gtceu:shaped/polyethylene_belt_connector') + B: '#forge:tools/hammers', + C: '#forge:tools/wrenches', + }).id('tfg:shaped/styrene_butadiene_rubber_belt_connector') - event.recipes.gtceu.assembler('polyethylene_belt_connector') - .itemInputs('gtceu:styrene_butadiene_rubber_plate') - .itemOutputs('greate:polyethylene_belt_connector') + event.recipes.gtceu.assembler('styrene_butadiene_rubber_belt_connector') + .itemInputs('3x gtceu:styrene_butadiene_rubber_plate') + .itemOutputs('greate:styrene_butadiene_rubber_belt_connector') .circuit(11) .duration(50) .EUt(GTValues.VA[GTValues.ULV]) - .removePreviousMaterialInfo() .addMaterialInfo(true) + event.remove({ id: 'gtceu:shaped/styrene_butadiene_rubber_belt_connector' }) + removeMaceratorRecipe(event, 'macerate_styrene_butadiene_rubber_belt_connector') + event.remove({ id: 'gtceu:extractor/extract_styrene_butadiene_rubber_belt_connector' }) + + TFGHelpers.registerMaterialInfo('greate:styrene_butadiene_rubber_belt_connector', { 'styrene_butadiene_rubber': 3 }); + // #endregion // #region Mixer diff --git a/kubejs/server_scripts/greate/recipes.recycling.js b/kubejs/server_scripts/greate/recipes.recycling.js index 3bf5677d1..7927ccaee 100644 --- a/kubejs/server_scripts/greate/recipes.recycling.js +++ b/kubejs/server_scripts/greate/recipes.recycling.js @@ -74,13 +74,5 @@ function registerGreateRecyclingRecipes(event) { .duration(GTMaterials.SiliconeRubber.getMass() * 3) .category(GTRecipeCategories.MACERATOR_RECYCLING) .EUt(GTValues.VA[GTValues.ULV]) - - event.recipes.gtceu.macerator('greate:polyethylene_belt_connector') - .itemInputs('greate:polyethylene_belt_connector') - .itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.StyreneButadieneRubber, 1)) - .duration(GTMaterials.StyreneButadieneRubber.getMass() * 3) - .category(GTRecipeCategories.MACERATOR_RECYCLING) - .EUt(GTValues.VA[GTValues.ULV]) - // #region } \ No newline at end of file diff --git a/kubejs/server_scripts/sophisticated_backpacks/recipes.js b/kubejs/server_scripts/sophisticated_backpacks/recipes.js index 4c0611e36..0873a71f5 100644 --- a/kubejs/server_scripts/sophisticated_backpacks/recipes.js +++ b/kubejs/server_scripts/sophisticated_backpacks/recipes.js @@ -181,7 +181,7 @@ const registerSophisticatedBackpacksRecipes = (event) => { ], { A: '#forge:cogwheels', B: 'gtceu:item_filter', - C: '#greate:belts', + C: '#forge:belt_connectors', D: 'sophisticatedbackpacks:upgrade_base', E: 'create:mechanical_arm', F: '#gtceu:circuits/ulv', diff --git a/kubejs/startup_scripts/greate/constants.js b/kubejs/startup_scripts/greate/constants.js index 395ae8812..f6921813e 100644 --- a/kubejs/startup_scripts/greate/constants.js +++ b/kubejs/startup_scripts/greate/constants.js @@ -14,8 +14,9 @@ global.GREATE_DISABLED_ITEMS = /** @type {const} */ ([ "gtceu:neutronium_alloy", "gtceu:neutronium_whisk", - "greate:polybenzimidazole_belt_connector", + "greate:polyethylene_belt_connector", "greate:polytetrafluoroethylene_belt_connector", + "greate:polybenzimidazole_belt_connector", "greate:andesite_alloy_crushing_wheel", "greate:andesite_alloy_encased_fan", diff --git a/kubejs/startup_scripts/greate/materials.js b/kubejs/startup_scripts/greate/materials.js index 910e6125c..8bcfe6db5 100644 --- a/kubejs/startup_scripts/greate/materials.js +++ b/kubejs/startup_scripts/greate/materials.js @@ -1,7 +1,29 @@ "use strict"; -const registerGreateMaterials = (event) => { +const registerGreateMaterials = (event) => { + // Belt materials should already have an ingot and plate item already + const $BeltProperty = Java.loadClass("electrolyte.greate.content.gtceu.material.BeltProperty") + + // Wood belt + GTMaterials.get('andesite_alloy').setProperty(GreatePropertyKeys.BELT, new $BeltProperty([GTMaterials.get('andesite_alloy')], 5)) + + // Leather belt + GTMaterials.Stone.setProperty(GreatePropertyKeys.BELT, new $BeltProperty([GTMaterials.Steel, GTMaterials.get('andesite_alloy')], 10)) + + // Remove plastic belts + GTMaterials.Polyethylene.getProperties().removeProperty(GreatePropertyKeys.BELT); + GTMaterials.Polytetrafluoroethylene.getProperties().removeProperty(GreatePropertyKeys.BELT); + GTMaterials.Polybenzimidazole.getProperties().removeProperty(GreatePropertyKeys.BELT); + + // Change properties of other rubber belts + GTMaterials.Rubber.getProperties().removeProperty(GreatePropertyKeys.BELT); + GTMaterials.Rubber.setProperty(GreatePropertyKeys.BELT, new $BeltProperty([GTMaterials.Steel, GTMaterials.get('andesite_alloy')], 20)) + + GTMaterials.SiliconeRubber.getProperties().removeProperty(GreatePropertyKeys.BELT); + GTMaterials.SiliconeRubber.setProperty(GreatePropertyKeys.BELT, new $BeltProperty([GTMaterials.StainlessSteel, GTMaterials.Aluminium], 25)) + + GTMaterials.StyreneButadieneRubber.setProperty(GreatePropertyKeys.BELT, new $BeltProperty([GTMaterials.Titanium, GTMaterials.StainlessSteel], 30)) } const registerGreateMaterialModification = (event) => { diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js index 32c8d2ab0..3ec698b25 100644 --- a/kubejs/startup_scripts/gtceu/material_modification.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -342,7 +342,7 @@ const registerGTCEuMaterialModification = (event) => { // Blue steel fluid pipe - same flow rate as aluminium, same temp tolerance as tungsten GTMaterials.BlueSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4618, 75, true, false, false, false)); // Ostrum fluid pipe - same flow rate as titanium, higher temp range - TFGHelpers.getMaterial('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); + GTMaterials.get('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); // Add some hazards back GTMaterials.Realgar.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); @@ -352,8 +352,8 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Thorium.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.ANY, GTMedicalConditions.CARCINOGEN, 1, true)); // This contains hazardous elements so GT tags it as hazardous automatically - TFGHelpers.getMaterial('ostrum').getProperties().removeProperty(PropertyKey.HAZARD); - TFGHelpers.getMaterial('ostrum_iodide').getProperties().removeProperty(PropertyKey.HAZARD); + GTMaterials.get('ostrum').getProperties().removeProperty(PropertyKey.HAZARD); + GTMaterials.get('ostrum_iodide').getProperties().removeProperty(PropertyKey.HAZARD); // Superconductors being radioactive at EV is a little evil GTMaterials.UraniumTriplatinum.getProperties().removeProperty(PropertyKey.HAZARD); @@ -440,4 +440,4 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen') GTMaterials.GraniteRed.setComponents([]) GTMaterials.GraniteRed.setFormula("?") -} +} \ No newline at end of file