- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparserAndReadin.java
More file actions
Latest commit
119 lines (108 loc) · 4.06 KB
/
Copy pathparserAndReadin.java
File metadata and controls
119 lines (108 loc) · 4.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
importjava.io.BufferedWriter;
importjava.io.FileWriter;
importjava.io.BufferedReader;
importjava.io.FileReader;
importjava.io.IOException;
importjava.lang.reflect.Method;
importjava.util.ArrayList;
publicclassparserAndReadin
{
publicArrayList<Block> readInData(StringfileName)
{
ArrayList<Block> blocks = newArrayList<>();
try (BufferedReaderreader = newBufferedReader(newFileReader(fileName)))
{
Stringline;
while ((line = reader.readLine()) != null)
{
String[] data = line.split(",");
if (data.length == 10) {
Stringname = data[0];
booleanrenewability = Boolean.parseBoolean(data[1]);
Stringstackability = data[2];
doubleblastres = Double.parseDouble(data[3]);
doublehardness = Double.parseDouble(data[4]);
doubleluminous = Double.parseDouble(data[5]);
booleanflammable = Boolean.parseBoolean(data[6]);
Stringdimension = data[7];
booleancraftabilty = Boolean.parseBoolean(data[8]);
StringSFX = data[9];
Blockblock = newBlock(name, renewability, stackability, blastres, hardness, luminous, flammable, dimension, craftabilty, SFX);
blocks.add(block);
}
}
}
catch (IOExceptioniox)
{
System.out.println("Problem Reading " + fileName);
}
returnblocks;
}
//edit entry function
publicbooleaneditEntry(ArrayList<Block> blocks, StringblockName, BlockupdatedBlock, StringfileName)
{
System.out.println("Blocks before update: " + blocks); // Debugging
for (inti = 0; i < blocks.size(); i++)
{
Blockblock = blocks.get(i);
if (block.getName().equals(blockName))
{
blocks.set(i, updatedBlock);
saveBlocksToFile(blocks, fileName);
System.out.println("Blocks after update: " + blocks); // Debugging
returntrue;
}
}
System.out.println("Block not found: " + blockName); // Debugging
returnfalse; // Return false if block is not found
}
//Remove entry function
publicbooleanremoveEntry(ArrayList<Block> blocks, StringblockName, StringfileName)
{
booleanblockRemoved = blocks.removeIf(block -> block.getName().equals(blockName));
if (blockRemoved) {
saveBlocksToFile(blocks, fileName); // Save to file after removing
}
returnblockRemoved;
}
//Add entry function
publicbooleanaddEntry(ArrayList<Block> blocks, BlocknewBlock, StringfileName)
{
for (Blockblock : blocks)
{
if (block.getName().equals(newBlock.getName()))
{
returnfalse; // Block with the same name already exists
}
}
blocks.add(newBlock);
saveBlocksToFile(blocks, fileName); // Save to file after adding the new block
returntrue; // Block added successfully
}
publicvoidsaveBlocksToFile(ArrayList<Block> blocks, StringfileName)
{
try (BufferedWriterwriter = newBufferedWriter(newFileWriter(fileName)))
{
for (Blockblock : blocks)
{
writer.write(block.toCsvString());
writer.newLine();
}
}
catch (IOExceptioniox)
{
System.out.println("Problem Writing " + fileName);
}
}
publicBlockgetBlockByName(ArrayList<Block> blocks, StringblockName)
{
for (Blockblock : blocks)
{
if (block.getName().equalsIgnoreCase(blockName))
{
returnblock;
}
}
returnnull;
}
}