Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multithreaded Preloading of Data #1844

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/com/lilithsthrone/controller/xmlParsing/Element.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Optional;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;

Expand Down Expand Up @@ -49,7 +50,7 @@ private Element(org.w3c.dom.Element w3cElement, String fileDirectory, org.w3c.do
public static Element getDocumentRootElement(File xmlFile) throws XMLLoadException{
try{
String fileDirectory = xmlFile.getAbsolutePath();
Document parsedDocument = Main.getDocBuilder().parse(xmlFile);
Document parsedDocument = DocBuilders.parseDoc(xmlFile);
parsedDocument.getDocumentElement().normalize();
return new Element(parsedDocument.getDocumentElement(), fileDirectory, parsedDocument);

Expand Down
482 changes: 27 additions & 455 deletions src/com/lilithsthrone/game/Game.java

Large diffs are not rendered by default.

12 changes: 8 additions & 4 deletions src/com/lilithsthrone/game/Properties.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
import java.util.Map.Entry;
import java.util.Set;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
Expand Down Expand Up @@ -297,7 +299,8 @@ public Properties() {

public void savePropertiesAsXML(){
try {
Document doc = Main.getDocBuilder().newDocument();
DocumentBuilder db = DocBuilders.getNextDocBuilder();
Document doc = db.newDocument();
Element properties = doc.createElement("properties");
doc.appendChild(properties);

Expand Down Expand Up @@ -654,7 +657,8 @@ public void savePropertiesAsXML(){
StreamResult result = new StreamResult("data/properties.xml");

transformer.transform(source, result);


db.reset();
} catch (TransformerException e) {
e.printStackTrace();
}
Expand All @@ -673,7 +677,7 @@ public void loadPropertiesFromXML(){
if (new File("data/properties.xml").exists())
try {
File propertiesXML = new File("data/properties.xml");
Document doc = Main.getDocBuilder().parse(propertiesXML);
Document doc = DocBuilders.parseDoc(propertiesXML);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -1711,4 +1715,4 @@ public void setHairGrowth(int hairGrowth) {
this.hairGrowth = hairGrowth;
}

}
}
13 changes: 8 additions & 5 deletions src/com/lilithsthrone/game/character/CharacterUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@
import java.util.Map.Entry;
import java.util.stream.Collectors;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

Expand Down Expand Up @@ -154,8 +156,8 @@ public void saveCharacterAsXML(PlayerCharacter character){
try {
// long timeStart = System.nanoTime();
// System.out.println(timeStart);

Document doc = Main.getDocBuilder().newDocument();
DocumentBuilder db = DocBuilders.getNextDocBuilder();
Document doc = db.newDocument();

Element properties = doc.createElement("playerCharacter");
doc.appendChild(properties);
Expand Down Expand Up @@ -204,7 +206,8 @@ public void saveCharacterAsXML(PlayerCharacter character){
StreamResult result = new StreamResult(saveLocation);

transformer.transform(source, result);


db.reset();
} catch (TransformerException e) {
e.printStackTrace();
}
Expand All @@ -231,7 +234,7 @@ public PlayerCharacter loadCharacterFromXML(File xmlFile, PlayerCharacter import

if (xmlFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(xmlFile);
Document doc = DocBuilders.parseDoc(xmlFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -3363,4 +3366,4 @@ public List<AbstractClothing> generateEnchantedClothingForTrader(GameCharacter t

return clothingGenerated;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -88,7 +89,7 @@ public AbstractAntennaType(
public AbstractAntennaType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -219,4 +220,4 @@ public String getBodyDescription(GameCharacter owner) {
public String getTransformationDescription(GameCharacter owner) {
return UtilText.parse(owner, antennaTransformationDescription);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -80,7 +81,7 @@ public AbstractAnusType(AbstractBodyCoveringType coveringType,
public AbstractAnusType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -196,4 +197,4 @@ public AbstractRace getRace() {
public List<OrificeModifier> getDefaultRacialOrificeModifiers() {
return defaultRacialOrificeModifiers;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -129,7 +130,7 @@ public AbstractArmType(AbstractBodyCoveringType coveringType,
public AbstractArmType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -364,4 +365,4 @@ public String getTransformationDescription(GameCharacter owner) {
public List<BodyPartTag> getTags() {
return armTags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -85,7 +86,7 @@ public AbstractAssType(AbstractBodyCoveringType coveringType,
public AbstractAssType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -216,4 +217,4 @@ public String getBodyDescription(GameCharacter owner) {
public String getTransformationDescription(GameCharacter owner) {
return UtilText.parse(owner, assTransformationDescription);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -126,7 +127,7 @@ public AbstractBreastType(AbstractBodyCoveringType skinType,
public AbstractBreastType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -314,4 +315,4 @@ public String getBodyCrotchDescription(GameCharacter owner) {
return UtilText.parse(owner, breastsCrotchBodyDescription);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -88,7 +89,7 @@ public AbstractEarType(AbstractBodyCoveringType coveringType,
public AbstractEarType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -213,4 +214,4 @@ public String getTransformationDescription(GameCharacter owner) {
public List<BodyPartTag> getTags() {
return tags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -103,7 +104,7 @@ public AbstractEyeType(AbstractBodyCoveringType coveringType,
public AbstractEyeType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -239,4 +240,4 @@ public String getTransformationDescription(GameCharacter owner) {
public List<BodyPartTag> getTags() {
return tags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -148,7 +149,7 @@ public AbstractFaceType(AbstractBodyCoveringType coveringType,
public AbstractFaceType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -339,4 +340,4 @@ public TFModifier getTFModifier() {
public List<BodyPartTag> getTags() {
return tags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -88,7 +89,7 @@ public AbstractFluidType(
public AbstractFluidType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -251,4 +252,4 @@ public List<FluidModifier> getDefaultFluidModifiers() {
public float getValueModifier() {
return 1f;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -105,7 +106,7 @@ public AbstractHairType(AbstractBodyCoveringType skinType,
public AbstractHairType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -267,4 +268,4 @@ public String getTransformationDescription(GameCharacter owner) {
public List<BodyPartTag> getTags() {
return tags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;

import com.lilithsthrone.main.Main;
import com.lilithsthrone.threading.DocBuilders;
import org.w3c.dom.Document;

import com.lilithsthrone.controller.xmlParsing.Element;
Expand Down Expand Up @@ -93,7 +94,7 @@ public AbstractHornType(
public AbstractHornType(File XMLFile, String author, boolean mod) {
if (XMLFile.exists()) {
try {
Document doc = Main.getDocBuilder().parse(XMLFile);
Document doc = DocBuilders.parseDoc(XMLFile);

// Cast magic:
doc.getDocumentElement().normalize();
Expand Down Expand Up @@ -249,4 +250,4 @@ public String getBodyDescription(GameCharacter owner) {
public String getTransformationDescription(GameCharacter owner) {
return UtilText.parse(owner, hornTransformationDescription);
}
}
}
Loading