Skip to content

Commit 06abfb2

Browse files
committedApr 10, 2015
Built framework for ingame manual.
1 parent 608e18a commit 06abfb2

32 files changed

+321
-29
lines changed
 

‎build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ computronics.version=1.4.7
66
enderio.version=1.7.10-2.2.8.343
77
forestry.version=forestry_1.7.10:3.4.0.7
88
gregtech.version=gregtech_1.7.10:5.07.07
9-
oc.version=MC1.7.10-1.5.0.6
9+
oc.version=MC1.7.10-1.5.7.532-dev
1010
waila.version=1.5.8a_1.7.10

‎src/main/java/pl/asie/computronics/Computronics.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080

8181
@Mod(modid = Mods.Computronics, name = Mods.Computronics_NAME, version = "@VERSION@",
8282
dependencies = "required-after:asielib@[0.3.12,);required-after:Forge@[10.13.2.1236,);"
83-
+ "after:ComputerCraft;after:OpenComputers@[1.5.0,);after:OpenComputersAPI|Internal@[5.0.0,);"
83+
+ "after:ComputerCraft;after:OpenComputers@[1.5.7,);after:OpenComputersAPI|Internal@[5.0.0,);"
8484
+ "after:OpenComputers|Core;after:MineFactoryReloaded;after:RedLogic@[59.1.9,);after:ProjRed|Core;"
8585
+ "after:nedocomputers;after:BuildCraft|Core@[6.4.1,);after:Railcraft@[9.5.0.0,);"
8686
+ "after:gregtech@[MC1710];after:EnderIO@[1.7.10_2.2.7,);before:OpenPeripheralCore@[1.0,);"

‎src/main/java/pl/asie/computronics/block/BlockCamera.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class BlockCamera extends BlockMachineSidedIcon {
1717
private IIcon mFront;
1818

1919
public BlockCamera() {
20-
super();
20+
super("camera");
2121
this.setBlockName("computronics.camera");
2222
this.setRotation(Rotation.SIX);
2323
}

‎src/main/java/pl/asie/computronics/block/BlockChatBox.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class BlockChatBox extends BlockMachineSidedIcon implements IBlockWithSpe
2727
private IIcon mSide;
2828

2929
public BlockChatBox() {
30-
super();
30+
super("chatbox");
3131
this.setCreativeTab(Computronics.tab);
3232
this.setIconName("computronics:chatbox");
3333
this.setBlockName("computronics.chatBox");

‎src/main/java/pl/asie/computronics/block/BlockCipher.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class BlockCipher extends BlockMachineSidedIcon implements IRedNetOmniNod
2626
private IIcon mFront;
2727

2828
public BlockCipher() {
29-
super("bundled");
29+
super("bundled", "cipher");
3030
this.setBlockName("computronics.cipher");
3131
this.setGuiID(1);
3232
}

‎src/main/java/pl/asie/computronics/block/BlockCipherAdvanced.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class BlockCipherAdvanced extends BlockMachineSidedIcon implements IBlock
2626
private IIcon mFront;
2727

2828
public BlockCipherAdvanced() {
29-
super();
29+
super("cipher_advanced");
3030
this.setBlockName("computronics.cipher_advanced");
3131
}
3232

‎src/main/java/pl/asie/computronics/block/BlockColorfulLamp.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class BlockColorfulLamp extends BlockPeripheral implements IRedNetInputNo
2626
public IIcon m0, m1;
2727

2828
public BlockColorfulLamp() {
29-
super();
29+
super("colorful_lamp");
3030
this.setCreativeTab(Computronics.tab);
3131
this.setBlockName("computronics.colorfulLamp");
3232
this.lightValue = 15;

‎src/main/java/pl/asie/computronics/block/BlockDigitalDetector.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,17 @@
2222
import net.minecraft.world.World;
2323
import net.minecraftforge.common.util.ForgeDirection;
2424
import pl.asie.computronics.Computronics;
25+
import pl.asie.computronics.oc.manual.IBlockWithPrefix;
2526
import pl.asie.computronics.reference.Mods;
2627
import pl.asie.computronics.tile.TileDigitalDetector;
2728

2829
/**
2930
* @author CovertJaguar, Vexatos
3031
*/
31-
public class BlockDigitalDetector extends BlockPeripheral {
32+
public class BlockDigitalDetector extends BlockPeripheral implements IBlockWithPrefix {
3233

3334
public BlockDigitalDetector() {
34-
super();
35+
super("digital_detector");
3536
this.setBlockName("computronics.detector");
3637
this.setRotation(Rotation.NONE);
3738
this.setResistance(4.5F);
@@ -220,4 +221,9 @@ public boolean canConnectRedstone(IBlockAccess world, int i, int j, int k, int d
220221
public Class<? extends Environment> getTileEntityClass(int meta) {
221222
return TileDigitalDetector.class;
222223
}
224+
225+
@Override
226+
public String getPrefix(World world, int x, int y, int z) {
227+
return "railcraft/";
228+
}
223229
}

‎src/main/java/pl/asie/computronics/block/BlockDigitalReceiverBox.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import pl.asie.computronics.Computronics;
2020
import pl.asie.computronics.integration.railcraft.SignalTypes;
2121
import pl.asie.computronics.oc.block.IComputronicsEnvironmentBlock;
22+
import pl.asie.computronics.oc.manual.IBlockWithPrefix;
2223
import pl.asie.computronics.reference.Mods;
2324
import pl.asie.computronics.tile.TileDigitalReceiverBox;
2425

@@ -28,7 +29,7 @@
2829
@Optional.InterfaceList({
2930
@Optional.Interface(iface = "pl.asie.computronics.oc.block.IComputronicsEnvironmentBlock", modid = Mods.OpenComputers)
3031
})
31-
public class BlockDigitalReceiverBox extends BlockSignalBase implements IComputronicsEnvironmentBlock {
32+
public class BlockDigitalReceiverBox extends BlockSignalBase implements IComputronicsEnvironmentBlock, IBlockWithPrefix {
3233

3334
public static IIcon[] texturesBox;
3435
public static IIcon texturesBoxTop;
@@ -113,4 +114,14 @@ public int isProvidingWeakPower(IBlockAccess world, int i, int j, int k, int sid
113114
public Class<? extends Environment> getTileEntityClass(int meta) {
114115
return TileDigitalReceiverBox.class;
115116
}
117+
118+
@Override
119+
public String getDocumentationName(World world, int x, int y, int z) {
120+
return "digital_receiver_box";
121+
}
122+
123+
@Override
124+
public String getPrefix(World world, int x, int y, int z) {
125+
return "railcraft/";
126+
}
116127
}

‎src/main/java/pl/asie/computronics/block/BlockEEPROMReader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class BlockEEPROMReader extends BlockPeripheral {
1818
private IIcon mTopOff, mTopOn, mSide, mBottom;
1919

2020
public BlockEEPROMReader() {
21-
super();
21+
super("eeprom_reader");
2222
this.setBlockName("computronics.eepromReader");
2323
}
2424

‎src/main/java/pl/asie/computronics/block/BlockIronNote.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
})
1919
public class BlockIronNote extends BlockPeripheral implements IRedNetInputNode {
2020
public BlockIronNote() {
21-
super();
21+
super("iron_noteblock");
2222
this.setIconName("computronics:noteblock");
2323
this.setBlockName("computronics.ironNoteBlock");
2424
}

‎src/main/java/pl/asie/computronics/block/BlockLocomotiveRelay.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@
88
import net.minecraft.tileentity.TileEntity;
99
import net.minecraft.util.IIcon;
1010
import net.minecraft.world.World;
11+
import pl.asie.computronics.oc.manual.IBlockWithPrefix;
1112
import pl.asie.computronics.reference.Mods;
1213
import pl.asie.computronics.tile.TileLocomotiveRelay;
1314

1415
/**
1516
* @author Vexatos
1617
*/
17-
public class BlockLocomotiveRelay extends BlockPeripheral {
18+
public class BlockLocomotiveRelay extends BlockPeripheral implements IBlockWithPrefix {
1819
private IIcon mTop, mSide, mBottom;
1920

2021
public BlockLocomotiveRelay() {
21-
super();
22+
super("locomotive_relay");
2223
this.setIconName("computronics:machine_top");
2324
this.setBlockName("computronics.locomotiveRelay");
2425
this.setRotation(Rotation.NONE);
@@ -55,4 +56,9 @@ public IIcon getAbsoluteIcon(int side, int metadata) {
5556
public Class<? extends Environment> getTileEntityClass(int meta) {
5657
return TileLocomotiveRelay.class;
5758
}
59+
60+
@Override
61+
public String getPrefix(World world, int x, int y, int z) {
62+
return "railcraft/";
63+
}
5864
}

‎src/main/java/pl/asie/computronics/block/BlockMachineSidedIcon.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ public abstract class BlockMachineSidedIcon extends BlockPeripheral {
1111
protected IIcon mSide, mSideBI, mSideBO, mTop, mBottom;
1212
private String sidingType;
1313

14-
public BlockMachineSidedIcon(String sidingType) {
15-
super();
14+
public BlockMachineSidedIcon(String sidingType, String documentationName) {
15+
super(documentationName);
1616
this.sidingType = sidingType;
1717
if(sidingType.equals("bundled") && !Loader.isModLoaded(Mods.RedLogic) && !Loader.isModLoaded(Mods.ProjectRed))
1818
this.sidingType = "";
1919
this.setRotation(Rotation.FOUR);
2020
}
2121

22-
public BlockMachineSidedIcon() {
23-
this("");
22+
public BlockMachineSidedIcon(String documentationName) {
23+
this("", documentationName);
2424
}
2525

2626
@SideOnly(Side.CLIENT)

‎src/main/java/pl/asie/computronics/block/BlockPeripheral.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@
77
import net.minecraft.world.World;
88
import pl.asie.computronics.Computronics;
99
import pl.asie.computronics.oc.block.IComputronicsEnvironmentBlock;
10+
import pl.asie.computronics.oc.manual.IBlockWithDocumentation;
1011
import pl.asie.computronics.reference.Mods;
1112
import pl.asie.lib.block.BlockBase;
1213

1314
@Optional.InterfaceList({
1415
@Optional.Interface(iface = "pl.asie.computronics.oc.block.IComputronicsEnvironmentBlock", modid = Mods.OpenComputers)
1516
})
16-
public abstract class BlockPeripheral extends BlockBase implements IComputronicsEnvironmentBlock {
17+
public abstract class BlockPeripheral extends BlockBase implements IComputronicsEnvironmentBlock, IBlockWithDocumentation {
1718

18-
public BlockPeripheral() {
19+
public BlockPeripheral(String documentationName) {
1920
super(Material.iron, Computronics.instance);
2021
this.setCreativeTab(Computronics.tab);
22+
this.documentationName = documentationName;
2123
}
2224

2325
@Override
@@ -47,4 +49,11 @@ public boolean isNormalCube() {
4749
public boolean isNormalCube(IBlockAccess world, int x, int y, int z) {
4850
return true;
4951
}
52+
53+
protected String documentationName;
54+
55+
@Override
56+
public String getDocumentationName(World world, int x, int y, int z) {
57+
return this.documentationName;
58+
}
5059
}

‎src/main/java/pl/asie/computronics/block/BlockRadar.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
public class BlockRadar extends BlockMachineSidedIcon {
1515
public BlockRadar() {
16-
super();
16+
super("radar");
1717
this.setCreativeTab(Computronics.tab);
1818
this.setIconName("computronics:radar");
1919
this.setBlockName("computronics.radar");

‎src/main/java/pl/asie/computronics/block/BlockSorter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class BlockSorter extends BlockMachineSidedIcon {
1515
private IIcon mFrontOn, mFrontOff;
1616

1717
public BlockSorter() {
18-
super();
18+
super("sorter");
1919
this.setBlockName("computronics.sorter");
2020
}
2121

‎src/main/java/pl/asie/computronics/block/BlockTapeReader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class BlockTapeReader extends BlockMachineSidedIcon {
1717
private IIcon mFront;
1818

1919
public BlockTapeReader() {
20-
super();
20+
super("tape_drive");
2121
this.setBlockName("computronics.tapeDrive");
2222
this.setGuiID(0);
2323
}

‎src/main/java/pl/asie/computronics/integration/buildcraft/pluggable/ItemDockingUpgrade.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.item.ItemStack;
1313
import net.minecraft.nbt.NBTTagCompound;
1414
import pl.asie.computronics.Computronics;
15+
import pl.asie.computronics.oc.manual.IItemWithPrefix;
1516
import pl.asie.computronics.reference.Mods;
1617
import pl.asie.lib.item.ItemMultiple;
1718

@@ -23,7 +24,7 @@
2324
@Optional.Interface(iface = "li.cil.oc.api.driver.EnvironmentAware", modid = Mods.OpenComputers),
2425
@Optional.Interface(iface = "li.cil.oc.api.driver.item.HostAware", modid = Mods.OpenComputers)
2526
})
26-
public class ItemDockingUpgrade extends ItemMultiple implements Item, EnvironmentAware, HostAware {
27+
public class ItemDockingUpgrade extends ItemMultiple implements Item, EnvironmentAware, HostAware, IItemWithPrefix {
2728

2829
public ItemDockingUpgrade() {
2930
super(Mods.Computronics, new String[] {
@@ -78,4 +79,14 @@ public NBTTagCompound dataTag(ItemStack stack) {
7879
}
7980
return nbt.getCompoundTag("oc:data");
8081
}
82+
83+
@Override
84+
public String getDocumentationName(ItemStack stack) {
85+
return "docking_upgrade";
86+
}
87+
88+
@Override
89+
public String getPrefix(ItemStack stack) {
90+
return "buildcraft/";
91+
}
8192
}

‎src/main/java/pl/asie/computronics/integration/buildcraft/pluggable/ItemDroneStation.java

+13-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
import net.minecraft.world.World;
1313
import net.minecraftforge.common.util.ForgeDirection;
1414
import pl.asie.computronics.Computronics;
15+
import pl.asie.computronics.oc.manual.IItemWithPrefix;
1516

1617
/**
1718
* @author Vexatos
1819
*/
19-
public class ItemDroneStation extends Item implements IPipePluggableItem {
20+
public class ItemDroneStation extends Item implements IPipePluggableItem, IItemWithPrefix {
2021

2122
public ItemDroneStation() {
2223
super();
@@ -43,11 +44,21 @@ public int getSpriteNumber() {
4344

4445
@Override
4546
public PipePluggable createPipePluggable(IPipe pipe, ForgeDirection side, ItemStack stack) {
46-
switch(side){
47+
switch(side) {
4748
case UP:
4849
return new DroneStationPluggable();
4950
default:
5051
return null;
5152
}
5253
}
54+
55+
@Override
56+
public String getDocumentationName(ItemStack stack) {
57+
return "drone_station";
58+
}
59+
60+
@Override
61+
public String getPrefix(ItemStack stack) {
62+
return "buildcraft/";
63+
}
5364
}

‎src/main/java/pl/asie/computronics/item/ItemOpenComputers.java

+24-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import pl.asie.computronics.oc.RobotUpgradeCamera;
3232
import pl.asie.computronics.oc.RobotUpgradeChatBox;
3333
import pl.asie.computronics.oc.RobotUpgradeRadar;
34+
import pl.asie.computronics.oc.manual.IItemWithDocumentation;
3435
import pl.asie.computronics.reference.Config;
3536
import pl.asie.computronics.reference.Mods;
3637
import pl.asie.computronics.util.StringUtil;
@@ -43,7 +44,7 @@
4344
@Optional.Interface(iface = "li.cil.oc.api.driver.EnvironmentAware", modid = Mods.OpenComputers),
4445
@Optional.Interface(iface = "li.cil.oc.api.driver.item.HostAware", modid = Mods.OpenComputers)
4546
})
46-
public class ItemOpenComputers extends ItemMultiple implements Item, EnvironmentAware, HostAware {
47+
public class ItemOpenComputers extends ItemMultiple implements Item, EnvironmentAware, HostAware, IItemWithDocumentation {
4748

4849
public ItemOpenComputers() {
4950
super(Mods.Computronics, new String[] {
@@ -261,4 +262,26 @@ public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, b
261262
}
262263
}
263264
}
265+
266+
@Override
267+
public String getDocumentationName(ItemStack stack) {
268+
switch(stack.getItemDamage()) {
269+
case 0:
270+
return "camera_upgrade";
271+
case 1:
272+
return "chat_upgrade";
273+
case 2:
274+
return "radar_upgrade";
275+
case 3:
276+
return "particle_card";
277+
case 4:
278+
return "spoofing_card";
279+
case 5:
280+
return "beep_card";
281+
case 6:
282+
return "self_destructing_card";
283+
default:
284+
return "index";
285+
}
286+
}
264287
}

‎src/main/java/pl/asie/computronics/item/ItemRelaySensor.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import net.minecraft.util.IIcon;
1414
import net.minecraft.world.World;
1515
import pl.asie.computronics.Computronics;
16+
import pl.asie.computronics.oc.manual.IItemWithPrefix;
1617
import pl.asie.computronics.reference.Config;
1718
import pl.asie.computronics.tile.TileLocomotiveRelay;
1819
import pl.asie.computronics.util.StringUtil;
@@ -22,7 +23,7 @@
2223
/**
2324
* @author Vexatos
2425
*/
25-
public class ItemRelaySensor extends Item {
26+
public class ItemRelaySensor extends Item implements IItemWithPrefix {
2627

2728
private IIcon icon_off;
2829
private IIcon icon_on;
@@ -138,4 +139,13 @@ public void addInformation(ItemStack stack, EntityPlayer player, List text, bool
138139
}
139140
}
140141

142+
@Override
143+
public String getDocumentationName(ItemStack stack) {
144+
return "relay_sensor";
145+
}
146+
147+
@Override
148+
public String getPrefix(ItemStack stack) {
149+
return "railcraft/";
150+
}
141151
}

‎src/main/java/pl/asie/computronics/item/ItemTape.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import pl.asie.computronics.api.tape.IItemTapeStorage;
2222
import pl.asie.computronics.api.tape.ITapeStorage;
2323
import pl.asie.computronics.item.entity.EntityItemIndestructable;
24+
import pl.asie.computronics.oc.manual.IItemWithDocumentation;
2425
import pl.asie.computronics.reference.Mods;
2526
import pl.asie.computronics.tape.TapeStorage;
2627
import pl.asie.computronics.util.StringUtil;
@@ -32,7 +33,7 @@
3233
@Optional.Interface(iface = "dan200.computercraft.api.media.IMediaProvider", modid = Mods.ComputerCraft),
3334
@Optional.Interface(iface = "dan200.computercraft.api.media.IMedia", modid = Mods.ComputerCraft)
3435
})
35-
public class ItemTape extends Item implements IItemTapeStorage, IMedia, IMediaProvider {
36+
public class ItemTape extends Item implements IItemTapeStorage, IMedia, IMediaProvider, IItemWithDocumentation {
3637
public static final int L_SECOND = 4096;
3738
public static final int L_MINUTE = 4096 * 60;
3839

@@ -284,4 +285,9 @@ public String getAudioRecordName(ItemStack stack) {
284285
public IMount createDataMount(ItemStack stack, World world) {
285286
return null;
286287
}
288+
289+
@Override
290+
public String getDocumentationName(ItemStack stack) {
291+
return "tape";
292+
}
287293
}

‎src/main/java/pl/asie/computronics/oc/IntegrationOpenComputers.java

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import pl.asie.computronics.integration.redlogic.DriverLamp;
5050
import pl.asie.computronics.item.ItemOpenComputers;
5151
import pl.asie.computronics.oc.block.DriverBlockEnvironments;
52+
import pl.asie.computronics.oc.manual.ComputronicsPathProvider;
5253
import pl.asie.computronics.reference.Compat;
5354
import pl.asie.computronics.reference.Config;
5455
import pl.asie.computronics.reference.Mods;
@@ -107,6 +108,7 @@ public void preInit() {
107108
public void init() {
108109

109110
Driver.add(new DriverBlockEnvironments());
111+
ComputronicsPathProvider.initialize();
110112

111113
if(Loader.isModLoaded(Mods.RedLogic)) {
112114
if(compat.isCompatEnabled(Compat.RedLogic_Lamps)) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package pl.asie.computronics.oc.manual;
2+
3+
import li.cil.oc.api.Manual;
4+
import li.cil.oc.api.manual.PathProvider;
5+
import li.cil.oc.api.manual.TabIconRenderer;
6+
import li.cil.oc.api.prefab.ItemStackTabIconRenderer;
7+
import li.cil.oc.api.prefab.ResourceContentProvider;
8+
import li.cil.oc.api.prefab.TextureTabIconRenderer;
9+
import net.minecraft.block.Block;
10+
import net.minecraft.item.ItemStack;
11+
import net.minecraft.util.ResourceLocation;
12+
import net.minecraft.world.World;
13+
import pl.asie.computronics.Computronics;
14+
15+
import java.util.ArrayList;
16+
import java.util.Collections;
17+
18+
/**
19+
* @author Vexatos
20+
*/
21+
public class ComputronicsPathProvider implements PathProvider {
22+
23+
public static void initialize() {
24+
Manual.addProvider(new ComputronicsPathProvider());
25+
Manual.addProvider(new ResourceContentProvider("computronics", "doc/computronics/"));
26+
Manual.addTab(findTabIconRenderer(),
27+
"tooltip.computronics.manual.tab.blocks", "%LANGUAGE%/block/index.md");
28+
Manual.addTab(new TextureTabIconRenderer(new ResourceLocation("computronics", "textures/items/tape_greg.png")),
29+
"tooltip.computronics.manual.tab.items", "%LANGUAGE%/item/index.md");
30+
}
31+
32+
private static TabIconRenderer findTabIconRenderer() {
33+
ArrayList<Block> blocks = new ArrayList<Block>();
34+
Collections.addAll(blocks,
35+
Computronics.tapeReader,
36+
Computronics.camera,
37+
Computronics.chatBox,
38+
Computronics.ironNote,
39+
Computronics.cipher,
40+
Computronics.radar,
41+
Computronics.cipher_advanced,
42+
Computronics.colorfulLamp);
43+
44+
for(Block block : blocks) {
45+
if(block != null) {
46+
return new ItemStackTabIconRenderer(new ItemStack(block));
47+
}
48+
}
49+
return new TextureTabIconRenderer(new ResourceLocation("computronics", "textures/blocks/tape_drive_front.png"));
50+
}
51+
52+
@Override
53+
public String pathFor(ItemStack stack) {
54+
if(stack == null || stack.getItem() == null) {
55+
return null;
56+
}
57+
if(stack.getItem() instanceof IItemWithDocumentation) {
58+
return makePath("item",
59+
stack.getItem() instanceof IItemWithPrefix ?
60+
((IItemWithPrefix) stack.getItem()).getPrefix(stack)
61+
+ ((IItemWithDocumentation) stack.getItem()).getDocumentationName(stack)
62+
: ((IItemWithDocumentation) stack.getItem()).getDocumentationName(stack));
63+
}
64+
return null;
65+
}
66+
67+
@Override
68+
public String pathFor(World world, int x, int y, int z) {
69+
if(world == null) {
70+
return null;
71+
}
72+
Block block = world.getBlock(x, y, z);
73+
if(block != null && block instanceof IBlockWithDocumentation) {
74+
return makePath("block",
75+
block instanceof IBlockWithPrefix ?
76+
((IBlockWithPrefix) block).getPrefix(world, x, y, z)
77+
+ ((IBlockWithDocumentation) block).getDocumentationName(world, x, y, z)
78+
: ((IBlockWithDocumentation) block).getDocumentationName(world, x, y, z));
79+
}
80+
return null;
81+
}
82+
83+
private String makePath(String type, String documentationName) {
84+
return "%LANGUAGE%/" + type + "/" + documentationName + ".md";
85+
}
86+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package pl.asie.computronics.oc.manual;
2+
3+
import net.minecraft.world.World;
4+
5+
/**
6+
* @author Vexatos
7+
*/
8+
public interface IBlockWithDocumentation {
9+
public String getDocumentationName(World world, int x, int y, int z);
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package pl.asie.computronics.oc.manual;
2+
3+
import net.minecraft.world.World;
4+
5+
/**
6+
* @author Vexatos
7+
*/
8+
public interface IBlockWithPrefix extends IBlockWithDocumentation {
9+
public String getPrefix(World world, int x, int y, int z);
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package pl.asie.computronics.oc.manual;
2+
3+
import net.minecraft.item.ItemStack;
4+
5+
/**
6+
* @author Vexatos
7+
*/
8+
public interface IItemWithDocumentation {
9+
public String getDocumentationName(ItemStack stack);
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package pl.asie.computronics.oc.manual;
2+
3+
import net.minecraft.item.ItemStack;
4+
5+
/**
6+
* @author Vexatos
7+
*/
8+
public interface IItemWithPrefix extends IItemWithDocumentation {
9+
public String getPrefix(ItemStack stack);
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Computronics Manual
2+
3+
This index lists all of the documented blocks in Computronics. If you're looking for an item, check out the [item index](../item/index.md) instead.
4+
5+
Keep in mind that some of these may not be available, depending on the recipe set used and whether they have been enabled.
6+
7+
# Blocks
8+
9+
* [Camera](camera.md)
10+
* [Chat Box](chatbox.md)
11+
* [Cipher Block](cipher.md)
12+
* [Advanced Cipher Block](cipher_advanced.md)
13+
* [Colorful Lamp](colorful_lamp.md)
14+
* [Iron Note Block](iron_noteblock.md)
15+
* [Radar](radar.md)
16+
* [Tape Drive](tape_drive.md)
17+
18+
# Blocks for other mods
19+
20+
These are blocks that Computronics adds for integration with other mods. They might not exist in your mod pack.
21+
22+
## NedoComputers
23+
24+
* [EEPROM Reader](eeprom_reader.md)
25+
26+
## Railcraft
27+
28+
* [Locomotive Relay](railcraft/locomotive_relay.md)
29+
* [Digital Detector](railcraft/digital_detector.md)
30+
* [Digital Signal Receiver Box](railcraft/digital_receiver_box.md)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Computronics Manual
2+
3+
This index lists all of the documented items in Computronics. If you're looking for a block, check out the [block index](../block/index.md) instead.
4+
5+
Keep in mind that some of these may not be available, depending on the recipe set used.
6+
7+
# Items
8+
9+
* [Cassette Tape](tape.md)
10+
11+
## Upgrades
12+
13+
* [Camera Upgrade](camera_upgrade.md)
14+
* [Chat Upgrade](chat_upgrade.md)
15+
* [Radar Upgrade](radar_upgrade.md)
16+
17+
## Cards
18+
19+
* [Particle Effects Card](particle_card.md)
20+
* [Spoofing Card](spoofing_card.md)
21+
* [Beep Card](beep_card.md)
22+
* [Self-Destructing Card](self_destructing_card.md)
23+
24+
# Items for other mods
25+
26+
These are items that Computronics adds for integration with other mods. They might not exist in your mod pack.
27+
28+
## Buildcraft
29+
30+
* [Drone Docking Station](buildcraft/drone_station.md)
31+
* [Docking Upgrade](buildcraft/docking_upgrade.md)
32+
33+
## Railcraft
34+
35+
* [Digital Relay Sensor](railcraft/relay_sensor.md)

‎src/main/resources/assets/computronics/lang/de_DE.lang

+3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ tooltip.computronics.waila.lamp.red=Rot: %s
5858
tooltip.computronics.waila.lamp.green=Grün: %s
5959
tooltip.computronics.waila.lamp.blue=Blau: %s
6060

61+
tooltip.computronics.manual.tab.blocks=Computronics: Blöcke
62+
tooltip.computronics.manual.tab.items=Computronics: Items
63+
6164
option.computronics.enableOCAddress=Komponentenaddresse
6265
option.computronics.enableNCAddress=NedoComputers Bus ID
6366
option.computronics.enableTape=Enthaltene Kassette

‎src/main/resources/assets/computronics/lang/en_US.lang

+3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ tooltip.computronics.waila.lamp.red=Red: %s
5858
tooltip.computronics.waila.lamp.green=Green: %s
5959
tooltip.computronics.waila.lamp.blue=Blue: %s
6060

61+
tooltip.computronics.manual.tab.blocks=Computronics: Blocks
62+
tooltip.computronics.manual.tab.items=Computronics: Items
63+
6164
option.computronics.enableOCAddress=Component address
6265
option.computronics.enableNCAddress=NedoComputers Bus ID
6366
option.computronics.enableTape=Inserted tape

0 commit comments

Comments
 (0)
Please sign in to comment.