aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/StitchedTexture.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/StitchedTexture.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/StitchedTexture.h')
-rw-r--r--Minecraft.Client/StitchedTexture.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/Minecraft.Client/StitchedTexture.h b/Minecraft.Client/StitchedTexture.h
new file mode 100644
index 00000000..99b1d447
--- /dev/null
+++ b/Minecraft.Client/StitchedTexture.h
@@ -0,0 +1,89 @@
+#pragma once
+using namespace std;
+
+#include "..\Minecraft.World\Icon.h"
+class Texture;
+
+class StitchedTexture : public Icon
+{
+private:
+ const wstring name;
+
+protected:
+ Texture *source;
+ vector<Texture *> *frames;
+
+private:
+ typedef vector<pair<int, int> > intPairVector;
+ intPairVector *frameOverride;
+ int flags;
+
+protected:
+ bool rotated;
+
+ int x;
+ int y;
+
+protected:
+ int width;
+ int height;
+
+ float u0;
+ float u1;
+ float v0;
+ float v1;
+
+ float widthTranslation;
+ float heightTranslation;
+
+protected:
+ int frame;
+ int subFrame;
+
+public:
+ static StitchedTexture *create(const wstring &name);
+
+ ~StitchedTexture();
+protected:
+ StitchedTexture(const wstring &name);
+
+public:
+ void initUVs(float U0, float V0, float U1, float V1);
+ void init(Texture *source, vector<Texture *> *frames, int x, int y, int width, int height, bool rotated);
+ void replaceWith(StitchedTexture *texture);
+ int getX() const;
+ int getY() const;
+ int getWidth() const;
+ int getHeight() const;
+ float getU0(bool adjust = false) const;
+ float getU1(bool adjust = false) const;
+ float getU(double offset, bool adjust = false) const;
+ float getV0(bool adjust = false) const;
+ float getV1(bool adjust = false) const;
+ float getV(double offset, bool adjust = false) const;
+ wstring getName() const;
+ virtual int getSourceWidth() const;
+ virtual int getSourceHeight() const;
+ virtual void cycleFrames();
+ Texture *getSource();
+ Texture *getFrame(int i);
+ virtual int getFrames();
+
+ /**
+ * Loads animation frames from a file with the syntax, <code>
+ * 0,1,2,3,
+ * 4*10,5*10,
+ * 4*10,3,2,1,
+ * 0
+ * </code> or similar
+ *
+ * @param bufferedReader
+ */
+ void loadAnimationFrames(BufferedReader *bufferedReader);
+ void loadAnimationFrames(const wstring &string); // 4J Added
+
+ int getFlags() const ; // 4J added
+ void setFlags(int flags); // 4J added
+ virtual void freeFrameTextures(); // 4J added
+ virtual bool hasOwnData(); // 4J Added
+}; \ No newline at end of file